--- a/regression.py Mon Sep 07 11:45:05 2009 +0200
+++ b/regression.py Mon Sep 07 11:59:10 2009 +0100
@@ -91,10 +91,32 @@
self.env = env
super(regression_test_task, self).__init__(generator=self, env=env)
self.test_name = test_name
+
+ assert self.test_name.startswith('test-')
+ short_name = self.test_name[len('test-'):]
+
self.test_scripts_dir = test_scripts_dir
self.build_traces_dir = build_traces_dir
self.reference_traces_dir = reference_traces
+ sys.path.insert(0, self.test_scripts_dir)
+ try:
+ mod = __import__(self.test_name, globals(), locals(), [])
+ finally:
+ sys.path.remove(self.test_scripts_dir)
+ self.mod = mod
+ if hasattr(mod, 'may_run'):
+ reason_cannot_run = mod.may_run(self.env, Options.options)
+ else:
+ reason_cannot_run = None
+ if not reason_cannot_run:
+ pyscript = getattr(mod, "pyscript", None)
+ if pyscript:
+ Options.options.compile_targets += ',ns3module'
+ else:
+ program = getattr(mod, "program", short_name)
+ Options.options.compile_targets += ',' + program
+
def __str__(self):
return 'regression-test (%s)\n' % self.test_name
@@ -103,15 +125,9 @@
def run(self):
"""Run a single test"""
- sys.path.insert(0, self.test_scripts_dir)
- try:
- mod = __import__(self.test_name, globals(), locals(), [])
- finally:
- sys.path.remove(self.test_scripts_dir)
-
assert self.test_name.startswith('test-')
short_name = self.test_name[len('test-'):]
-
+ mod = self.mod
trace_dir_name = getattr(mod, "trace_dir_name", None)
if trace_dir_name is None:
trace_dir_name = "%s.ref" % short_name
--- a/wscript Mon Sep 07 11:45:05 2009 +0200
+++ b/wscript Mon Sep 07 11:59:10 2009 +0100
@@ -542,11 +542,10 @@
# When --run'ing a program, tell WAF to only build that program,
# nothing more; this greatly speeds up compilation when all you
# want to do is run a test program.
- if not Options.options.compile_targets:
- Options.options.compile_targets = os.path.basename(program_name)
- for gen in bld.all_task_gen:
- if type(gen).__name__ in ['ns3header_taskgen', 'ns3moduleheader_taskgen']:
- gen.post()
+ Options.options.compile_targets += ',' + os.path.basename(program_name)
+ for gen in bld.all_task_gen:
+ if type(gen).__name__ in ['ns3header_taskgen', 'ns3moduleheader_taskgen']:
+ gen.post()
if Options.options.regression or Options.options.regression_generate:
regression_traces = env['REGRESSION_TRACES']
@@ -556,6 +555,7 @@
regression.run_regression(bld, regression_traces)
if Options.options.check:
+ Options.options.compile_targets += ',run-tests,ns3module'
_run_check(bld)