Add hooks to job.parallel to split out job._record_prefix state into
subtask-local persistent state. This should keep parallel tests from smashing
eachothers status log indentation.

Signed-off-by: John Admanski <[email protected]>

--- autotest/client/bin/job.py  2010-01-29 13:39:51.000000000 -0800
+++ autotest/client/bin/job.py  2010-01-29 13:39:51.000000000 -0800
@@ -765,7 +765,14 @@
         for i, task in enumerate(tasklist):
             assert isinstance(task, (tuple, list))
             self._log_filename = old_log_filename + (".%d" % i)
-            task_func = lambda: task[0](*task[1:])
+            def task_func():
+                # stub out _record_prefix with a process-local one
+                base_record_prefix = self._record_prefix
+                proc_local = self._job_state.property_factory(
+                    '_state', '_record_prefix.%d' % os.getpid(),
+                    base_record_prefix, namespace='client')
+                self.__class__._record_prefix = proc_local
+                task[0](*task[1:])
             pids.append(parallel.fork_start(self.resultdir, task_func))
 
         old_log_path = os.path.join(self.resultdir, old_log_filename)
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to