[OE-core] [PATCH 1/1] oetest.py: Add command line parameter support for tag in testexport

Benjamin Esquivel benjamin.esquivel at linux.intel.com
Mon Jul 4 15:14:55 UTC 2016


Hello Mariano, comments below

> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf
> Of mariano.lopez at linux.intel.com
> Sent: Monday, July 4, 2016 12:28 AM
> To: openembedded-core at lists.openembedded.org
> Subject: [OE-core] [PATCH 1/1] oetest.py: Add command line parameter
> support for tag in testexport
> 
> From: Mariano Lopez <mariano.lopez at linux.intel.com>
> 
> This allows to use a command line argument to change the tag used to
filter
> test instead of rebuilding the tests.
> 
> [YOCTO #8532]
> 
> Signed-off-by: Mariano Lopez <mariano.lopez at linux.intel.com>
> ---
>  meta/lib/oeqa/oetest.py      | 10 +++++++---
>  meta/lib/oeqa/runexported.py |  6 +++++-
>  2 files changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py index
> 4a740fb..339f34d 100644
> --- a/meta/lib/oeqa/oetest.py
> +++ b/meta/lib/oeqa/oetest.py
> @@ -397,8 +397,6 @@ class RuntimeTestContext(TestContext):
>      def __init__(self, d, target, exported=False):
>          super(RuntimeTestContext, self).__init__(d, exported)
> 
> -        self.tagexp =  d.getVar("TEST_SUITES_TAGS", True)
> -
>          self.target = target
> 
>          self.pkgmanifest = {}
> @@ -592,6 +590,8 @@ class ImageTestContext(RuntimeTestContext):
>      def __init__(self, d, target, host_dumper):
>          super(ImageTestContext, self).__init__(d, target)
> 
> +        self.tagexp = d.getVar("TEST_SUITES_TAGS", True)
> +
>          self.host_dumper = host_dumper
> 
>          self.sigterm = False
> @@ -612,8 +612,12 @@ class ImageTestContext(RuntimeTestContext):
>          super(ImageTestContext, self).install_uninstall_packages(test_id,
> pkg_dir, install)
> 
>  class ExportTestContext(RuntimeTestContext):
> -    def __init__(self, d, target, exported=False):
> +    def __init__(self, d, target, exported=False, *args, **kwargs):
Is the use of kwargs necessary? If not, it would be preferable to have a 
Named var here instead. Kwargs breaks readability.
>          super(ExportTestContext, self).__init__(d, target, exported)
> +
> +        tag = kwargs.get("tag", None)
> +        self.tagexp = tag if tag != None else
> + d.getVar("TEST_SUITES_TAGS", True)
> +
>          self.sigterm = None
> 
>      def install_uninstall_packages(self, test_id, install=True):
> diff --git a/meta/lib/oeqa/runexported.py b/meta/lib/oeqa/runexported.py
> index 5886739..b603d2f 100755
> --- a/meta/lib/oeqa/runexported.py
> +++ b/meta/lib/oeqa/runexported.py
> @@ -81,6 +81,7 @@ def main():
>              specified in the json if that directory actually exists or it
will error out.")
>      parser.add_argument("-l", "--log-dir", dest="log_dir", help="This
sets the
> path for TEST_LOG_DIR. If not specified \
>              the current dir is used. This is used for usually creating a
ssh log file and
> a scp test file.")
> +    parser.add_argument("-a", "--tag", dest="tag", help="Only run test
> + with specified tag.")
dest="tag_flag" or "tag_arg" is semantically better.
>      parser.add_argument("json", help="The json file exported by the build
> system", default="testdata.json", nargs='?')
> 
>      args = parser.parse_args()
> @@ -107,6 +108,9 @@ def main():
>          if not os.path.isdir(d["DEPLOY_DIR"]):
>              print("WARNING: The path to DEPLOY_DIR does not exist: %s" %
> d["DEPLOY_DIR"])
> 
> +    kwargs = {}
> +    kwargs["tag"] = args.tag
> +
>      extract_sdk(d)
> 
>      target = FakeTarget(d)
> @@ -114,7 +118,7 @@ def main():
>          setattr(target, key, loaded["target"][key])
> 
>      target.exportStart()
> -    tc = ExportTestContext(d, target, True)
> +    tc = ExportTestContext(d, target, True, **kwargs)
If you don't want to mess with the inputs of this function by using kwargs
then you
Can consider passing an object that includes the variables you want. I'd
only suggest
it if this function signature will grow.
>      tc.loadTests()
>      tc.runTests()
> 
> --
> 2.6.6
> 
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list