validate:launcher: Fix wrong test number with -j option
authorYoung Han Lee <y.lee@lge.com>
Mon, 30 Mar 2015 07:00:09 +0000 (16:00 +0900)
committerThibault Saunier <tsaunier@gnome.org>
Mon, 30 Mar 2015 11:02:39 +0000 (13:02 +0200)
When '-j n' option is given, first n tests print test number 0.
This is caused by test_num part of 919db986052602dca452f05e284cfc857302d4f0.

https://bugzilla.gnome.org/show_bug.cgi?id=747006

validate/launcher/baseclasses.py

index 5d6efcf..a9cd824 100644 (file)
@@ -749,7 +749,7 @@ class TestsManager(Loggable):
         self.queue = Queue.Queue()
         self.jobs = []
         self.total_num_tests = 0
-        self.test_num = 1
+        self.starting_test_num = 0
         self.check_testslist = True
         self.all_tests = None
 
@@ -890,7 +890,7 @@ class TestsManager(Loggable):
 
     def run_tests(self, starting_test_num, total_num_tests):
         self.total_num_tests = total_num_tests
-        self.test_num = starting_test_num
+        self.starting_test_num = starting_test_num
 
         num_jobs = min(self.options.num_jobs, len(self.tests))
         tests_left = list(self.tests)
@@ -906,18 +906,18 @@ class TestsManager(Loggable):
             jobs_running -= 1
             self.print_test_num(test)
             res = test.test_end()
-            self.test_num += 1
             self.reporter.after_test(test)
             if res != Result.PASSED and (self.options.forever or
                                          self.options.fatal_error):
-                return test.result, self.test_num
+                return test.result
             if self.start_new_job(tests_left):
                 jobs_running += 1
 
-        return Result.PASSED, self.test_num
+        return Result.PASSED
 
     def print_test_num(self, test):
-        sys.stdout.write("[%d / %d] " % (self.test_num, self.total_num_tests))
+        cur_test_num = self.starting_test_num + self.tests.index(test) + 1
+        sys.stdout.write("[%d / %d] " % (cur_test_num, self.total_num_tests))
 
     def clean_tests(self):
         for test in self.tests:
@@ -1169,7 +1169,8 @@ class _TestsLauncher(Loggable):
 
         self.reporter.init_timer()
         for tester in self.testers:
-            res, cur_test_num = tester.run_tests(cur_test_num, total_num_tests)
+            res = tester.run_tests(cur_test_num, total_num_tests)
+            cur_test_num += len(tester.list_tests())
             if res != Result.PASSED and (self.options.forever or
                                          self.options.fatal_error):
                 return False