2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-17 13:42:14 +00:00
Files
build/test/test_all.py
Vladimir Prus a644f2547e Unbreak 'searched_lib.py'.
* 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]
2003-05-16 12:57:40 +00:00

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)