diff options
author | sangeeta jain <sangeeta.jain@intel.com> | 2019-04-19 16:22:26 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-04-26 10:09:08 +0100 |
commit | ebeecd60c288dac7f6ad4e964d2e440edbd7f2de (patch) | |
tree | cd4c8537895526970fb6dc6e61cbec317bc2183c | |
parent | 852808d4c1e20004ae5e2319889e2766401173c1 (diff) | |
download | poky-ebeecd60c288dac7f6ad4e964d2e440edbd7f2de.tar.gz |
resulttool/manualexecution: Enable test case configuration option
Current manualexecution required user to exceute all test cases defined inside a "modulename.json" file in oeqa/manual
There are cases when all test cases all not required to run for a module on specific DUT.
Enable manualexecution to have the optional feature where it will use pre-defined json format test case configuration file
where user will be able to select test cases from the "modulename.json" instead of running all of them. This will help
in reducing testing time and reporting unneccesary skip or failures.
Example pre-defined json format test case configuration file (for build-applince):
{
"testcases" : [
"build-appliance.build-appliance.Create_core-image-sato-sdk_using_build_appliance",
"build-appliance.build-appliance.Build_a_image_without_error_(added_recipe)"
]
}
(From OE-Core rev: 3950c28a34f94b5907d37b579bdaee5a59794652)
Signed-off-by: sangeeta jain <sangeeta.jain@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-x | scripts/lib/resulttool/manualexecution.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/scripts/lib/resulttool/manualexecution.py b/scripts/lib/resulttool/manualexecution.py index ea44219d4e..dc368f36fc 100755 --- a/scripts/lib/resulttool/manualexecution.py +++ b/scripts/lib/resulttool/manualexecution.py | |||
@@ -17,6 +17,7 @@ import os | |||
17 | import sys | 17 | import sys |
18 | import datetime | 18 | import datetime |
19 | import re | 19 | import re |
20 | import copy | ||
20 | from oeqa.core.runner import OETestResultJSONHelper | 21 | from oeqa.core.runner import OETestResultJSONHelper |
21 | 22 | ||
22 | 23 | ||
@@ -123,7 +124,7 @@ class ManualTestRunner(object): | |||
123 | def _get_write_dir(self): | 124 | def _get_write_dir(self): |
124 | return os.environ['BUILDDIR'] + '/tmp/log/manual/' | 125 | return os.environ['BUILDDIR'] + '/tmp/log/manual/' |
125 | 126 | ||
126 | def run_test(self, case_file, config_options_file): | 127 | def run_test(self, case_file, config_options_file, testcase_config_file): |
127 | test_module = self._get_test_module(case_file) | 128 | test_module = self._get_test_module(case_file) |
128 | cases = load_json_file(case_file) | 129 | cases = load_json_file(case_file) |
129 | config_options = {} | 130 | config_options = {} |
@@ -132,6 +133,13 @@ class ManualTestRunner(object): | |||
132 | configurations = self._get_config(config_options, test_module) | 133 | configurations = self._get_config(config_options, test_module) |
133 | result_id = 'manual_%s_%s' % (test_module, configurations['STARTTIME']) | 134 | result_id = 'manual_%s_%s' % (test_module, configurations['STARTTIME']) |
134 | test_results = {} | 135 | test_results = {} |
136 | if testcase_config_file: | ||
137 | test_case_config = load_json_file(testcase_config_file) | ||
138 | test_case_to_execute = test_case_config['testcases'] | ||
139 | for case in copy.deepcopy(cases) : | ||
140 | if case['test']['@alias'] not in test_case_to_execute: | ||
141 | cases.remove(case) | ||
142 | |||
135 | print('\nTotal number of test cases in this test suite: %s\n' % len(cases)) | 143 | print('\nTotal number of test cases in this test suite: %s\n' % len(cases)) |
136 | for c in cases: | 144 | for c in cases: |
137 | test_result = self._execute_test_steps(c) | 145 | test_result = self._execute_test_steps(c) |
@@ -184,7 +192,7 @@ def manualexecution(args, logger): | |||
184 | if args.make_config_options_file: | 192 | if args.make_config_options_file: |
185 | testrunner.make_config_option_file(logger, args.file, args.config_options_file) | 193 | testrunner.make_config_option_file(logger, args.file, args.config_options_file) |
186 | return 0 | 194 | return 0 |
187 | configurations, result_id, write_dir, test_results = testrunner.run_test(args.file, args.config_options_file) | 195 | configurations, result_id, write_dir, test_results = testrunner.run_test(args.file, args.config_options_file, args.testcase_config_file) |
188 | resultjsonhelper = OETestResultJSONHelper() | 196 | resultjsonhelper = OETestResultJSONHelper() |
189 | resultjsonhelper.dump_testresult_file(write_dir, configurations, result_id, test_results) | 197 | resultjsonhelper.dump_testresult_file(write_dir, configurations, result_id, test_results) |
190 | return 0 | 198 | return 0 |
@@ -200,3 +208,5 @@ def register_commands(subparsers): | |||
200 | help='the config options file to import and used as available configuration option selection or make config option file') | 208 | help='the config options file to import and used as available configuration option selection or make config option file') |
201 | parser_build.add_argument('-m', '--make-config-options-file', action='store_true', | 209 | parser_build.add_argument('-m', '--make-config-options-file', action='store_true', |
202 | help='make the configuration options file based on provided inputs') | 210 | help='make the configuration options file based on provided inputs') |
211 | parser_build.add_argument('-t', '--testcase-config-file', default='', | ||
212 | help='the testcase configuration file to enable user to run a selected set of test case') \ No newline at end of file | ||