From: Jan Stancek <[email protected]>

If autotest client is run with custom harness, its name is stored
in state file. This allows autotest to continue (e.g. after reboot)
with harness that was specified on first run.

If "--harness" option is present on command line, this
option is used regardless of what is stored in state file.
Added log info about used harness.

Changes from v1: Put the harness debug statement inside the harness
module

Signed-off-by: Jan Stancek <[email protected]>
---
 client/bin/harness.py |    4 +++-
 client/bin/job.py     |   15 ++++++++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/client/bin/harness.py b/client/bin/harness.py
index b4c9dfd..bcb4f96 100644
--- a/client/bin/harness.py
+++ b/client/bin/harness.py
@@ -5,7 +5,7 @@ The interface between the client and the server when hosted.
 
 __author__ = """Copyright Andy Whitcroft 2006"""
 
-import os, sys
+import os, sys, logging
 import common
 
 class harness(object):
@@ -86,6 +86,8 @@ def select(which, job):
     if not which:
         which = 'standalone'
 
+    logging.debug('Selected harness: %s' % which)
+
     harness_name = 'harness_%s' % which
     harness_module = common.setup_modules.import_module(harness_name,
                                                         
'autotest_lib.client.bin')
diff --git a/client/bin/job.py b/client/bin/job.py
index 750bf1c..27822f5 100644
--- a/client/bin/job.py
+++ b/client/bin/job.py
@@ -174,7 +174,20 @@ class base_client_job(base_job.base_job):
         self._next_step_index = 0
         self._load_state()
 
-        self.harness = harness.select(options.harness, self)
+        # harness is chosen by following rules:
+        # 1. explicitly specified via command line
+        # 2. harness stored in state file (if continuing job '-c')
+        # 3. default harness
+        selected_harness = ''
+        if (options.harness):
+            selected_harness = options.harness
+            self._state.set('client', 'harness', selected_harness)
+        else:
+            stored_harness = self._state.get('client', 'harness', None)
+            if (stored_harness):
+                selected_harness = stored_harness
+
+        self.harness = harness.select(selected_harness, self)
 
         # set up the status logger
         def client_job_record_hook(entry):
-- 
1.7.3.4

_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to