| OLD | NEW |
| 1 # -*- python -*- | 1 # -*- python -*- |
| 2 # Copyright (c) 2011 The Native Client Authors. All rights reserved. | 2 # Copyright (c) 2011 The Native Client Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import atexit | 6 import atexit |
| 7 import glob | 7 import glob |
| 8 import os | 8 import os |
| 9 import platform | 9 import platform |
| 10 import stat | 10 import stat |
| (...skipping 1102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1113 | 1113 |
| 1114 command = [validator] + validator_flags + [image] | 1114 command = [validator] + validator_flags + [image] |
| 1115 return CommandTest(env, name, command, size, **extra) | 1115 return CommandTest(env, name, command, size, **extra) |
| 1116 | 1116 |
| 1117 pre_base_env.AddMethod(CommandValidatorTestNacl) | 1117 pre_base_env.AddMethod(CommandValidatorTestNacl) |
| 1118 | 1118 |
| 1119 | 1119 |
| 1120 def ExtractPublishedFiles(env, target_name): | 1120 def ExtractPublishedFiles(env, target_name): |
| 1121 run_files = ['$STAGING_DIR/' + os.path.basename(published_file.path) | 1121 run_files = ['$STAGING_DIR/' + os.path.basename(published_file.path) |
| 1122 for published_file in env.GetPublished(target_name, 'run')] | 1122 for published_file in env.GetPublished(target_name, 'run')] |
| 1123 nexe = '$STAGING_DIR/' + target_name | 1123 nexe = '$STAGING_DIR/%s${PROGSUFFIX}' % target_name |
| 1124 return [env.File(file) for file in run_files + [nexe]] | 1124 return [env.File(file) for file in run_files + [nexe]] |
| 1125 | 1125 |
| 1126 pre_base_env.AddMethod(ExtractPublishedFiles) | 1126 pre_base_env.AddMethod(ExtractPublishedFiles) |
| 1127 | 1127 |
| 1128 | 1128 |
| 1129 # ---------------------------------------------------------- | 1129 # ---------------------------------------------------------- |
| 1130 EXTRA_ENV = ['XAUTHORITY', 'HOME', 'DISPLAY', 'SSH_TTY', 'KRB5CCNAME'] | 1130 EXTRA_ENV = ['XAUTHORITY', 'HOME', 'DISPLAY', 'SSH_TTY', 'KRB5CCNAME'] |
| 1131 | 1131 |
| 1132 def SetupBrowserEnv(env): | 1132 def SetupBrowserEnv(env): |
| 1133 for var_name in EXTRA_ENV: | 1133 for var_name in EXTRA_ENV: |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1436 | 1436 |
| 1437 gdb = nacl_extra_sdk_env['GDB'] | 1437 gdb = nacl_extra_sdk_env['GDB'] |
| 1438 command = ([gdb, '-q', '-batch', '-x', input, '--loader', sel_ldr] + | 1438 command = ([gdb, '-q', '-batch', '-x', input, '--loader', sel_ldr] + |
| 1439 gdb_flags + command) | 1439 gdb_flags + command) |
| 1440 | 1440 |
| 1441 return CommandTest(env, name, command, 'large', **extra) | 1441 return CommandTest(env, name, command, 'large', **extra) |
| 1442 | 1442 |
| 1443 pre_base_env.AddMethod(CommandGdbTestNacl) | 1443 pre_base_env.AddMethod(CommandGdbTestNacl) |
| 1444 | 1444 |
| 1445 | 1445 |
| 1446 def SelUniversalTest(env, name, command, sel_universal_flags=None, **kwargs): | 1446 def SelUniversalTest(env, name, nexe, sel_universal_flags=None, **kwargs): |
| 1447 # The dynamic linker's ability to receive arguments over IPC at | 1447 # The dynamic linker's ability to receive arguments over IPC at |
| 1448 # startup currently requires it to reject the plugin's first | 1448 # startup currently requires it to reject the plugin's first |
| 1449 # connection, but this interferes with the sel_universal-based | 1449 # connection, but this interferes with the sel_universal-based |
| 1450 # testing because sel_universal does not retry the connection. | 1450 # testing because sel_universal does not retry the connection. |
| 1451 # TODO(mseaborn): Fix by retrying the connection or by adding an | 1451 # TODO(mseaborn): Fix by retrying the connection or by adding an |
| 1452 # option to ld.so to disable its argv-over-IPC feature. | 1452 # option to ld.so to disable its argv-over-IPC feature. |
| 1453 if env.Bit('nacl_glibc') and not env.Bit('nacl_static_link'): | 1453 if env.Bit('nacl_glibc') and not env.Bit('nacl_static_link'): |
| 1454 return [] | 1454 return [] |
| 1455 | 1455 |
| 1456 if sel_universal_flags is None: | 1456 if sel_universal_flags is None: |
| 1457 sel_universal_flags = [] | 1457 sel_universal_flags = [] |
| 1458 | 1458 |
| 1459 # when run under qemu, sel_universal must sneeak in qemu to execv | 1459 # when run under qemu, sel_universal must sneeak in qemu to execv |
| 1460 # call that spawns sel_ldr. | 1460 # call that spawns sel_ldr. |
| 1461 if env.Bit('target_arm') and env.UsingEmulator(): | 1461 if env.Bit('target_arm') and env.UsingEmulator(): |
| 1462 sel_universal_flags.append('--command_prefix') | 1462 sel_universal_flags.append('--command_prefix') |
| 1463 sel_universal_flags.append(env['EMULATOR']) | 1463 sel_universal_flags.append(env['EMULATOR']) |
| 1464 | 1464 |
| 1465 node = CommandSelLdrTestNacl(env, | 1465 node = CommandSelLdrTestNacl(env, |
| 1466 name, | 1466 name, |
| 1467 command, | 1467 nexe, |
| 1468 loader='sel_universal', | 1468 loader='sel_universal', |
| 1469 sel_ldr_flags=sel_universal_flags, | 1469 sel_ldr_flags=sel_universal_flags, |
| 1470 **kwargs) | 1470 **kwargs) |
| 1471 # sel_universal locates sel_ldr via /proc/self/exe on Linux. | 1471 # sel_universal locates sel_ldr via /proc/self/exe on Linux. |
| 1472 if not env.Bit('built_elsewhere'): | 1472 if not env.Bit('built_elsewhere'): |
| 1473 env.Depends(node, GetSelLdr(env)) | 1473 env.Depends(node, GetSelLdr(env)) |
| 1474 return node | 1474 return node |
| 1475 | 1475 |
| 1476 pre_base_env.AddMethod(SelUniversalTest) | 1476 pre_base_env.AddMethod(SelUniversalTest) |
| 1477 | 1477 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1498 extra['osenv'] = extra.get('osenv', []) + extra_env | 1498 extra['osenv'] = extra.get('osenv', []) + extra_env |
| 1499 | 1499 |
| 1500 pre_base_env.AddMethod(MakeVerboseExtraOptions) | 1500 pre_base_env.AddMethod(MakeVerboseExtraOptions) |
| 1501 | 1501 |
| 1502 def ShouldUseVerboseOptions(extra): | 1502 def ShouldUseVerboseOptions(extra): |
| 1503 """ Heuristic for setting up Verbose NACLLOG options. """ | 1503 """ Heuristic for setting up Verbose NACLLOG options. """ |
| 1504 return ('process_output' in extra or | 1504 return ('process_output' in extra or |
| 1505 'log_golden' in extra) | 1505 'log_golden' in extra) |
| 1506 | 1506 |
| 1507 # ---------------------------------------------------------- | 1507 # ---------------------------------------------------------- |
| 1508 def CommandSelLdrTestNacl(env, name, command, | 1508 def CommandSelLdrTestNacl(env, name, nexe, |
| 1509 args = None, |
| 1509 log_verbosity=2, | 1510 log_verbosity=2, |
| 1510 sel_ldr_flags=None, | 1511 sel_ldr_flags=None, |
| 1511 loader='sel_ldr', | 1512 loader='sel_ldr', |
| 1512 size='medium', | 1513 size='medium', |
| 1513 # True for *.nexe statically linked with glibc | 1514 # True for *.nexe statically linked with glibc |
| 1514 glibc_static=False, | 1515 glibc_static=False, |
| 1515 uses_ppapi=False, | 1516 uses_ppapi=False, |
| 1516 **extra): | 1517 **extra): |
| 1517 # Disable all sel_ldr tests for windows under coverage. | 1518 # Disable all sel_ldr tests for windows under coverage. |
| 1518 # Currently several .S files block sel_ldr from being instrumented. | 1519 # Currently several .S files block sel_ldr from being instrumented. |
| 1519 # See http://code.google.com/p/nativeclient/issues/detail?id=831 | 1520 # See http://code.google.com/p/nativeclient/issues/detail?id=831 |
| 1520 if ('TRUSTED_ENV' in env and | 1521 if ('TRUSTED_ENV' in env and |
| 1521 env['TRUSTED_ENV'].Bit('coverage_enabled') and | 1522 env['TRUSTED_ENV'].Bit('coverage_enabled') and |
| 1522 env['TRUSTED_ENV'].Bit('windows')): | 1523 env['TRUSTED_ENV'].Bit('windows')): |
| 1523 return [] | 1524 return [] |
| 1524 | 1525 |
| 1526 command = [nexe] |
| 1527 if args is not None: |
| 1528 command += args |
| 1529 |
| 1525 sel_ldr = GetSelLdr(env, loader); | 1530 sel_ldr = GetSelLdr(env, loader); |
| 1526 if not sel_ldr: | 1531 if not sel_ldr: |
| 1527 print 'WARNING: no sel_ldr found. Skipping test %s' % name | 1532 print 'WARNING: no sel_ldr found. Skipping test %s' % name |
| 1528 return [] | 1533 return [] |
| 1529 | 1534 |
| 1530 # Avoid problems with [] as default arguments | 1535 # Avoid problems with [] as default arguments |
| 1531 if sel_ldr_flags is None: | 1536 if sel_ldr_flags is None: |
| 1532 sel_ldr_flags = [] | 1537 sel_ldr_flags = [] |
| 1533 | 1538 |
| 1534 # Disable the validator if running a GLibC test under Valgrind. | 1539 # Disable the validator if running a GLibC test under Valgrind. |
| (...skipping 1618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3153 Default(['all_programs', 'all_bundles', 'all_test_programs', 'all_libraries']) | 3158 Default(['all_programs', 'all_bundles', 'all_test_programs', 'all_libraries']) |
| 3154 | 3159 |
| 3155 if BROKEN_TEST_COUNT > 0: | 3160 if BROKEN_TEST_COUNT > 0: |
| 3156 msg = "There are %d broken tests." % BROKEN_TEST_COUNT | 3161 msg = "There are %d broken tests." % BROKEN_TEST_COUNT |
| 3157 if GetOption('brief_comstr'): | 3162 if GetOption('brief_comstr'): |
| 3158 msg += " Add --verbose to the command line for more information." | 3163 msg += " Add --verbose to the command line for more information." |
| 3159 print msg | 3164 print msg |
| 3160 | 3165 |
| 3161 # separate warnings from actual build output | 3166 # separate warnings from actual build output |
| 3162 Banner('B U I L D - O U T P U T:') | 3167 Banner('B U I L D - O U T P U T:') |
| OLD | NEW |