mirror of
https://github.com/boostorg/build.git
synced 2026-02-16 13:22:11 +00:00
* new/virtual-target.jam (null-action): Pass '.no-action' as action name, not 'no-action'. The action name is really dummy, it's not used at all. However, when it does not include dot, the smart 'action' ctor will assume it's local and prepend module name to it. The calling module will be 'null-action' instance module, always unique, and as result, no two targets with null actions will be equal, as far as 'virtual-target.register' is concerned. [SVN r18424]
108 lines
2.7 KiB
Python
108 lines
2.7 KiB
Python
#!/usr/bin/python
|
|
import os, sys, string
|
|
|
|
# clear environment for testing
|
|
#
|
|
for s in (
|
|
'BOOST_ROOT','BOOST_BUILD_PATH','JAM_TOOLSET','BCCROOT',
|
|
'MSVCDir','MSVC','MSVCNT','MINGW','watcom'
|
|
):
|
|
|
|
try:
|
|
del os.environ[s]
|
|
except:
|
|
pass
|
|
|
|
def run_tests(critical_tests, other_tests):
|
|
"""Runs first critical tests and then other_tests.
|
|
|
|
Stops on first error, and write the name of failed test to
|
|
test_results.txt. Critical tests are run in the specified order,
|
|
other tests are run starting with the one that failed the last time.
|
|
"""
|
|
last_failed = last_failed_test()
|
|
other_tests = reorder_tests(other_tests, last_failed)
|
|
all_tests = critical_tests + other_tests
|
|
|
|
invocation_dir = os.getcwd()
|
|
|
|
for i in all_tests:
|
|
print ("%-25s : " %(i)),
|
|
try:
|
|
__import__(i)
|
|
except:
|
|
print "FAILED"
|
|
f = open(os.path.join(invocation_dir, 'test_results.txt'), 'w')
|
|
f.write(i)
|
|
f.close()
|
|
raise
|
|
print "PASSED"
|
|
sys.stdout.flush() # makes testing under emacs more entertaining.
|
|
|
|
# Erase the file on success
|
|
open('test_results.txt', 'w')
|
|
|
|
|
|
def last_failed_test():
|
|
"Returns the name of last failed test or None"
|
|
try:
|
|
f = open("test_results.txt")
|
|
s = string.strip(f.read())
|
|
return s
|
|
except:
|
|
return None
|
|
|
|
def reorder_tests(tests, first_test):
|
|
try:
|
|
n = tests.index(first_test)
|
|
return [first_test] + tests[:n] + tests[n+1:]
|
|
except ValueError:
|
|
return tests
|
|
|
|
|
|
critical_tests = ["unit_tests", "module_actions", "startup_v1", "startup_v2"]
|
|
|
|
critical_tests += ["core_d12", "core_typecheck", "core_delete_module",
|
|
"core_varnames"]
|
|
|
|
tests = [ "project_test1",
|
|
"project_test3",
|
|
"project_test4",
|
|
"generators_test",
|
|
"dependency_test",
|
|
"direct_request_test",
|
|
"path_features",
|
|
"relative_sources",
|
|
"no_type",
|
|
"chain",
|
|
"default_build",
|
|
"main_properties",
|
|
"use_requirements",
|
|
"conditionals",
|
|
"stage",
|
|
"prebuilt",
|
|
"project_dependencies",
|
|
"build_dir",
|
|
"searched_lib",
|
|
"make_rule",
|
|
"alias",
|
|
"alternatives",
|
|
"unused",
|
|
"default_features",
|
|
"print",
|
|
"ndebug",
|
|
"explicit",
|
|
"absolute_sources",
|
|
"dependency_property",
|
|
]
|
|
|
|
if os.name == 'posix':
|
|
tests.append("symlink")
|
|
|
|
if 'QTDIR' in os.environ:
|
|
tests.append("railsys")
|
|
else:
|
|
print 'skipping railsys test since QTDIR environment variable is unset'
|
|
|
|
run_tests(critical_tests, tests)
|