From e6bd6cd03e8b62a74e78c2c5fbfcc0a8dfd53229 Mon Sep 17 00:00:00 2001 From: lmr Date: Thu, 10 Feb 2011 15:51:47 +0000 Subject: [PATCH] job: new parameter --harness_args This parameter allows to pass extra configuration to custom harness. This can be any string, whose content has meaning for custom harness. For example: options to configure communication with custom server side Signed-off-by: Jan Stancek git-svn-id: svn://test.kernel.org/autotest/trunk@5226 592f7852-d20e-0410-864c-8624ca9c26a4 --- client/bin/autotest | 3 +++ client/bin/harness.py | 4 ++-- client/bin/harness_ABAT.py | 2 +- client/bin/harness_autoserv.py | 2 +- client/bin/harness_simple.py | 2 +- client/bin/harness_standalone.py | 2 +- client/bin/harness_unittest.py | 15 +++++++++------ client/bin/job.py | 6 +++--- client/bin/job_unittest.py | 12 +++++++++--- 9 files changed, 30 insertions(+), 18 deletions(-) diff --git a/client/bin/autotest b/client/bin/autotest index e843b7f9..28c6015f 100755 --- a/client/bin/autotest +++ b/client/bin/autotest @@ -35,6 +35,9 @@ parser.add_option("-t", "--tag", dest="tag", type="string", default="default", parser.add_option("-H", "--harness", dest="harness", type="string", default='', help="set the harness type") +parser.add_option("-P", "--harness_args", dest="harness_args", type="string", default='', + help="arguments delivered to harness") + parser.add_option("-U", "--user", dest="user", type="string", default='', help="set the job username") diff --git a/client/bin/harness.py b/client/bin/harness.py index bcb4f966..6265ca2c 100644 --- a/client/bin/harness.py +++ b/client/bin/harness.py @@ -82,7 +82,7 @@ class harness(object): pass -def select(which, job): +def select(which, job, harness_args): if not which: which = 'standalone' @@ -91,6 +91,6 @@ def select(which, job): harness_name = 'harness_%s' % which harness_module = common.setup_modules.import_module(harness_name, 'autotest_lib.client.bin') - harness_instance = getattr(harness_module, harness_name)(job) + harness_instance = getattr(harness_module, harness_name)(job, harness_args) return harness_instance diff --git a/client/bin/harness_ABAT.py b/client/bin/harness_ABAT.py index 18459b85..4fdcf7b1 100644 --- a/client/bin/harness_ABAT.py +++ b/client/bin/harness_ABAT.py @@ -45,7 +45,7 @@ class harness_ABAT(harness.harness): The job object for this job """ - def __init__(self, job): + def __init__(self, job, harness_args): """ job The job object for this job diff --git a/client/bin/harness_autoserv.py b/client/bin/harness_autoserv.py index edab24f9..94c4094c 100644 --- a/client/bin/harness_autoserv.py +++ b/client/bin/harness_autoserv.py @@ -13,7 +13,7 @@ class harness_autoserv(harness.harness): The job object for this job """ - def __init__(self, job): + def __init__(self, job, harness_args): """ job The job object for this job diff --git a/client/bin/harness_simple.py b/client/bin/harness_simple.py index 5ff90d4a..3f2b49a5 100644 --- a/client/bin/harness_simple.py +++ b/client/bin/harness_simple.py @@ -15,7 +15,7 @@ class harness_simple(harness.harness): The job object for this job """ - def __init__(self, job): + def __init__(self, job, harness_args): """ job The job object for this job diff --git a/client/bin/harness_standalone.py b/client/bin/harness_standalone.py index 97308507..75a2da90 100644 --- a/client/bin/harness_standalone.py +++ b/client/bin/harness_standalone.py @@ -16,7 +16,7 @@ class harness_standalone(harness.harness): The job object for this job """ - def __init__(self, job): + def __init__(self, job, harness_args): """ job The job object for this job diff --git a/client/bin/harness_unittest.py b/client/bin/harness_unittest.py index 908243f9..a94af552 100755 --- a/client/bin/harness_unittest.py +++ b/client/bin/harness_unittest.py @@ -18,8 +18,9 @@ class harness_unittest(unittest.TestCase): job = object() self.god.stub_class(harness_standalone, "harness_standalone") - harness_standalone.harness_standalone.expect_new(job) - harness.select(None, job) + harness_args = '' + harness_standalone.harness_standalone.expect_new(job, harness_args) + harness.select(None, job, harness_args) self.god.check_playback() @@ -27,8 +28,9 @@ class harness_unittest(unittest.TestCase): job = object() self.god.stub_class(harness_standalone, "harness_standalone") - harness_standalone.harness_standalone.expect_new(job) - harness.select('standalone', job) + harness_args = '' + harness_standalone.harness_standalone.expect_new(job, harness_args) + harness.select('standalone', job, harness_args) self.god.check_playback() @@ -36,8 +38,9 @@ class harness_unittest(unittest.TestCase): job = object() self.god.stub_class(harness_ABAT, "harness_ABAT") - harness_ABAT.harness_ABAT.expect_new(job) - harness.select('ABAT', job) + harness_args = '' + harness_ABAT.harness_ABAT.expect_new(job, harness_args) + harness.select('ABAT', job, harness_args) self.god.check_playback() diff --git a/client/bin/job.py b/client/bin/job.py index 6154e8dc..a2379bc7 100644 --- a/client/bin/job.py +++ b/client/bin/job.py @@ -192,7 +192,7 @@ class base_client_job(base_job.base_job): if stored_harness: selected_harness = stored_harness - self.harness = harness.select(selected_harness, self) + self.harness = harness.select(selected_harness, self, options.harness_args) # set up the status logger def client_job_record_hook(entry): @@ -388,8 +388,8 @@ class base_client_job(base_job.base_job): self.control = os.path.abspath(control) - def harness_select(self, which): - self.harness = harness.select(which, self) + def harness_select(self, which, harness_args): + self.harness = harness.select(which, self, harness_args) def config_set(self, name, value): diff --git a/client/bin/job_unittest.py b/client/bin/job_unittest.py index 0e5aedee..88fa2721 100755 --- a/client/bin/job_unittest.py +++ b/client/bin/job_unittest.py @@ -82,6 +82,7 @@ class test_init_minimal_options(abstract_test_init, job_test_case): verbose = False cont = False harness = 'stub' + harness_args = None hostname = None user = None log = False @@ -181,7 +182,8 @@ class test_base_job(unittest.TestCase): my_harness = self.god.create_mock_class(harness.harness, 'my_harness') harness.select.expect_call(None, - self.job).and_return(my_harness) + self.job, + None).and_return(my_harness) return resultdir, my_harness @@ -237,6 +239,7 @@ class test_base_job(unittest.TestCase): options.tag = self.jobtag options.cont = cont options.harness = None + options.harness_args = None options.log = False options.verbose = False options.hostname = 'localhost' @@ -277,6 +280,7 @@ class test_base_job(unittest.TestCase): options.tag = self.jobtag options.cont = False options.harness = None + options.harness_args = None options.log = False options.verbose = False options.hostname = 'localhost' @@ -322,10 +326,12 @@ class test_base_job(unittest.TestCase): # record which = "which" - harness.select.expect_call(which, self.job).and_return(None) + harness_args = '' + harness.select.expect_call(which, self.job, + harness_args).and_return(None) # run and test - self.job.harness_select(which) + self.job.harness_select(which, harness_args) self.god.check_playback() -- 2.11.4.GIT