about summary refs log tree commit diff stats
path: root/test/utils/testset.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/utils/testset.py')
-rw-r--r--test/utils/testset.py30
1 files changed, 18 insertions, 12 deletions
diff --git a/test/utils/testset.py b/test/utils/testset.py
index 0fa8329b..97ebeb3d 100644
--- a/test/utils/testset.py
+++ b/test/utils/testset.py
@@ -10,20 +10,20 @@ class Message(object):
     pass
 
 
-class MessageTaskNew(object):
+class MessageTaskNew(Message):
     "Stand for a new task"
     def __init__(self, task):
         self.task = task
 
 
-class MessageTaskDone(object):
+class MessageTaskDone(Message):
     "Stand for a task done"
     def __init__(self, task, error):
         self.task = task
         self.error = error
 
 
-class MessageClose(object):
+class MessageClose(Message):
     "Close the channel"
     pass
 
@@ -76,7 +76,7 @@ class TestSet(object):
         if task_new:
             self.task_new_cb = task_new
 
-    def add_tasks(self):
+    def _add_tasks(self):
         "Add tests to do, regarding to dependencies"
         for test in self.tests:
             # Check dependencies
@@ -100,7 +100,7 @@ class TestSet(object):
         if len(self.tests_done) == self.init_tests_number:
             self.message_queue.put(MessageClose())
 
-    def messages_handler(self):
+    def _messages_handler(self):
         "Manage message between Master and Workers"
 
         # Main loop
@@ -115,7 +115,7 @@ class TestSet(object):
             elif isinstance(message, MessageTaskDone):
                 # A task has been done
                 self.tests_done.append(message.task)
-                self.add_tasks()
+                self._add_tasks()
                 self.task_done_cb(message.task, message.error)
                 if message.error is not None:
                     self.errorcode = -1
@@ -179,7 +179,7 @@ class TestSet(object):
             result.append(item)
         return result
 
-    def clean(self):
+    def _clean(self):
         "Remove produced files"
 
         # Build the list of products
@@ -208,7 +208,7 @@ class TestSet(object):
         "Launch tests"
 
         # Go in the right directory
-        current_directory = os.getcwd()
+        self.current_directory = os.getcwd()
         os.chdir(self.base_dir)
 
         # Launch workers
@@ -224,10 +224,10 @@ class TestSet(object):
         # Add initial tasks
         self.init_tests_number = len(self.tests)
         # Initial tasks
-        self.add_tasks()
+        self._add_tasks()
 
         # Handle messages
-        self.messages_handler()
+        self._messages_handler()
 
         # Close queue and join processes
         self.todo_queue.close()
@@ -237,11 +237,17 @@ class TestSet(object):
         for p in processes:
             p.join()
 
+    def end(self, clean=True):
+        """End a testset run
+        @clean: (optional) if set, remove tests products
+        PRE: run()
+        """
         # Clean
-        self.clean()
+        if clean:
+            self._clean()
 
         # Restore directory
-        os.chdir(current_directory)
+        os.chdir(self.current_directory)
 
     def tests_passed(self):
         "Return a non zero value if at least one test failed"