regression.py
changeset 4326 179f86838e62
parent 4308 b8528d30dfb3
child 4332 a1c7bc503a0c
--- a/regression.py	Thu Apr 09 15:17:28 2009 +0100
+++ b/regression.py	Mon Apr 13 23:10:37 2009 +0100
@@ -6,7 +6,6 @@
 import errno
 
 # WAF modules
-import Build
 import Options
 import Utils
 import Task
@@ -66,9 +65,11 @@
     after = 'cc cxx cc_link cxx_link'
     color = 'BLUE'
 
-    def __init__(self, env, test_name, test_scripts_dir, build_traces_dir, reference_traces):
-        super(regression_test_task, self).__init__()
+    def __init__(self, bld, env, test_name, test_scripts_dir, build_traces_dir, reference_traces):
+        self.bld = bld
+        self.generator = self
         self.env = env
+        super(regression_test_task, self).__init__(generator=self, env=env)
         self.test_name = test_name
         self.test_scripts_dir = test_scripts_dir
         self.build_traces_dir = build_traces_dir
@@ -77,6 +78,9 @@
     def __str__(self):
         return 'regression-test (%s)\n' % self.test_name
 
+    def runnable_status(self):
+        return Task.RUN_ME
+
     def run(self):
         """Run a single test"""
         sys.path.insert(0, self.test_scripts_dir)
@@ -119,7 +123,7 @@
         if Options.options.regression_generate:
             # clean the target dir
             try:
-                shutil.rmtree(trace_output_path)
+                shutil.rmtree(reference_traces_path)
             except OSError, ex:
                 if ex.errno not in [errno.ENOENT]:
                     raise
@@ -206,13 +210,17 @@
     after = 'regression_test_task'
     color = 'BLUE'
 
-    def __init__(self, test_tasks):
-        super(regression_test_collector_task, self).__init__()
+    def __init__(self, bld, test_tasks):
+        self.bld = bld
+        super(regression_test_collector_task, self).__init__(generator=self)
         self.test_tasks = test_tasks
 
     def __str__(self):
         return 'regression-test-collector\n'
 
+    def runnable_status(self):
+        return Task.RUN_ME
+
     def run(self):
         failed_tests = [test for test in self.test_tasks if test.result is not None and test.result != 0]
         skipped_tests = [test for test in self.test_tasks if test.result is None]
@@ -256,5 +264,7 @@
     build_traces_dir = bld.path.find_or_declare('regression/traces').abspath(bld.env)
     tasks = []
     for test in tests:
-        tasks.append(regression_test_task(bld.env, test, test_scripts_dir, build_traces_dir, reference_traces))
-    regression_test_collector_task(tasks)
+        task = regression_test_task(bld, bld.env, test, test_scripts_dir, build_traces_dir, reference_traces)
+        #bld.task_manager.add_task(task)
+        tasks.append(task)
+    regression_test_collector_task(bld, tasks)