2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 """Top level script for running all python unittests in the NaCl SDK
9 from __future__
import print_function
17 # add tools folder to sys.path
18 SCRIPT_DIR
= os
.path
.dirname(os
.path
.abspath(__file__
))
19 TOOLS_DIR
= os
.path
.join(SCRIPT_DIR
, 'tools')
20 BUILD_TOOLS_DIR
= os
.path
.join(SCRIPT_DIR
, 'build_tools')
22 sys
.path
.append(TOOLS_DIR
)
23 sys
.path
.append(os
.path
.join(TOOLS_DIR
, 'tests'))
24 sys
.path
.append(os
.path
.join(TOOLS_DIR
, 'lib', 'tests'))
25 sys
.path
.append(BUILD_TOOLS_DIR
)
26 sys
.path
.append(os
.path
.join(BUILD_TOOLS_DIR
, 'tests'))
30 PKG_VER_DIR
= os
.path
.join(build_paths
.NACL_DIR
, 'build', 'package_version')
31 TAR_DIR
= os
.path
.join(build_paths
.NACL_DIR
, 'toolchain', '.tars')
33 PKG_VER
= os
.path
.join(PKG_VER_DIR
, 'package_version.py')
35 EXTRACT_PACKAGES
= ['nacl_x86_glibc']
36 TOOLCHAIN_OUT
= os
.path
.join(build_paths
.OUT_DIR
, 'sdk_tests', 'toolchain')
39 'build_artifacts_test',
47 'get_shared_deps_test',
53 'sdktools_commands_test',
54 'sdktools_config_test',
57 'update_nacl_manifest_test',
58 'verify_filelist_test',
62 def ExtractToolchains():
63 subprocess
.check_output([sys
.executable
, PKG_VER
,
64 '--packages', ','.join(EXTRACT_PACKAGES
),
66 '--dest-dir', TOOLCHAIN_OUT
,
70 parser
= argparse
.ArgumentParser(description
=__doc__
)
71 parser
.add_argument('-v', '--verbose', action
='store_true')
72 options
= parser
.parse_args(args
)
74 # Some of the unit tests use parts of toolchains. Extract to TOOLCHAIN_OUT.
75 print('Extracting toolchains...')
78 suite
= unittest
.TestSuite()
79 for module_name
in TEST_MODULES
:
80 module
= __import__(module_name
)
81 suite
.addTests(unittest
.defaultTestLoader
.loadTestsFromModule(module
))
88 print('Running unittests...')
89 result
= unittest
.TextTestRunner(verbosity
=verbosity
).run(suite
)
90 return int(not result
.wasSuccessful())
92 if __name__
== '__main__':
93 sys
.exit(main(sys
.argv
[1:]))