oetest.py: Add command line parameter support for tag in testexport

This allows to use a command line argument to change the
tag used to filter test instead of rebuilding the tests.

[YOCTO #8532]

(From OE-Core rev: 928e0eecdb126f7d0bacd05b7057fc825e0d8f05)

Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mariano Lopez 2016-07-04 12:23:16 +00:00 committed by Richard Purdie
parent 2d565fae46
commit 84d854c98b
2 changed files with 18 additions and 4 deletions

View File

@ -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 = {}
@ -598,6 +596,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
@ -618,8 +618,18 @@ 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, parsedArgs={}):
"""
This class is used when exporting tests and when are executed outside OE environment.
parsedArgs can contain the following:
- tag: Filter test by tag.
"""
super(ExportTestContext, self).__init__(d, target, exported)
tag = parsedArgs.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):

View File

@ -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.")
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"])
parsedArgs = {}
parsedArgs["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, parsedArgs)
tc.loadTests()
tc.runTests()