On Wed, 2011-02-09 at 08:41 -0500, Jan Stancek wrote:
> 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

Ok, the patchset looks good to me. John, do you see any problem with
allowing passing arguments to the harness? The purpose of all this is to
make autotest to play nice with a new harness that is being developed on
the beaker test project.

> Signed-off-by: Jan Stancek <[email protected]>
> ---
>  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 e843b7f..28c6015 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 bcb4f96..6265ca2 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 18459b8..4fdcf7b 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 edab24f..94c4094 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 5ff90d4..3f2b49a 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 9730850..75a2da9 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 908243f..a94af55 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 3e285c6..948f899 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 0e5aede..88fa272 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()
>  
> 


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

Reply via email to