1.1 --- a/regression.py Mon Sep 07 11:45:05 2009 +0200
1.2 +++ b/regression.py Mon Sep 07 11:59:10 2009 +0100
1.3 @@ -91,10 +91,32 @@
1.4 self.env = env
1.5 super(regression_test_task, self).__init__(generator=self, env=env)
1.6 self.test_name = test_name
1.7 +
1.8 + assert self.test_name.startswith('test-')
1.9 + short_name = self.test_name[len('test-'):]
1.10 +
1.11 self.test_scripts_dir = test_scripts_dir
1.12 self.build_traces_dir = build_traces_dir
1.13 self.reference_traces_dir = reference_traces
1.14
1.15 + sys.path.insert(0, self.test_scripts_dir)
1.16 + try:
1.17 + mod = __import__(self.test_name, globals(), locals(), [])
1.18 + finally:
1.19 + sys.path.remove(self.test_scripts_dir)
1.20 + self.mod = mod
1.21 + if hasattr(mod, 'may_run'):
1.22 + reason_cannot_run = mod.may_run(self.env, Options.options)
1.23 + else:
1.24 + reason_cannot_run = None
1.25 + if not reason_cannot_run:
1.26 + pyscript = getattr(mod, "pyscript", None)
1.27 + if pyscript:
1.28 + Options.options.compile_targets += ',ns3module'
1.29 + else:
1.30 + program = getattr(mod, "program", short_name)
1.31 + Options.options.compile_targets += ',' + program
1.32 +
1.33 def __str__(self):
1.34 return 'regression-test (%s)\n' % self.test_name
1.35
1.36 @@ -103,15 +125,9 @@
1.37
1.38 def run(self):
1.39 """Run a single test"""
1.40 - sys.path.insert(0, self.test_scripts_dir)
1.41 - try:
1.42 - mod = __import__(self.test_name, globals(), locals(), [])
1.43 - finally:
1.44 - sys.path.remove(self.test_scripts_dir)
1.45 -
1.46 assert self.test_name.startswith('test-')
1.47 short_name = self.test_name[len('test-'):]
1.48 -
1.49 + mod = self.mod
1.50 trace_dir_name = getattr(mod, "trace_dir_name", None)
1.51 if trace_dir_name is None:
1.52 trace_dir_name = "%s.ref" % short_name
2.1 --- a/wscript Mon Sep 07 11:45:05 2009 +0200
2.2 +++ b/wscript Mon Sep 07 11:59:10 2009 +0100
2.3 @@ -542,11 +542,10 @@
2.4 # When --run'ing a program, tell WAF to only build that program,
2.5 # nothing more; this greatly speeds up compilation when all you
2.6 # want to do is run a test program.
2.7 - if not Options.options.compile_targets:
2.8 - Options.options.compile_targets = os.path.basename(program_name)
2.9 - for gen in bld.all_task_gen:
2.10 - if type(gen).__name__ in ['ns3header_taskgen', 'ns3moduleheader_taskgen']:
2.11 - gen.post()
2.12 + Options.options.compile_targets += ',' + os.path.basename(program_name)
2.13 + for gen in bld.all_task_gen:
2.14 + if type(gen).__name__ in ['ns3header_taskgen', 'ns3moduleheader_taskgen']:
2.15 + gen.post()
2.16
2.17 if Options.options.regression or Options.options.regression_generate:
2.18 regression_traces = env['REGRESSION_TRACES']
2.19 @@ -556,6 +555,7 @@
2.20 regression.run_regression(bld, regression_traces)
2.21
2.22 if Options.options.check:
2.23 + Options.options.compile_targets += ',run-tests,ns3module'
2.24 _run_check(bld)
2.25
2.26