diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/lib/oeqa/core/context.py | 20 | ||||
-rw-r--r-- | meta/lib/oeqa/selftest/context.py | 11 |
2 files changed, 25 insertions, 6 deletions
diff --git a/meta/lib/oeqa/core/context.py b/meta/lib/oeqa/core/context.py index 422e289992..acd547416f 100644 --- a/meta/lib/oeqa/core/context.py +++ b/meta/lib/oeqa/core/context.py | |||
@@ -41,6 +41,14 @@ class OETestContext(object): | |||
41 | 41 | ||
42 | return modules | 42 | return modules |
43 | 43 | ||
44 | def skipTests(self, skips): | ||
45 | if not skips: | ||
46 | return | ||
47 | for test in self.suites: | ||
48 | for skip in skips: | ||
49 | if test.id().startswith(skip): | ||
50 | setattr(test, 'setUp', lambda: test.skipTest('Skip by the command line argument "%s"' % skip)) | ||
51 | |||
44 | def loadTests(self, module_paths, modules=[], tests=[], | 52 | def loadTests(self, module_paths, modules=[], tests=[], |
45 | modules_manifest="", modules_required=[], filters={}): | 53 | modules_manifest="", modules_required=[], filters={}): |
46 | if modules_manifest: | 54 | if modules_manifest: |
@@ -50,9 +58,12 @@ class OETestContext(object): | |||
50 | modules_required, filters) | 58 | modules_required, filters) |
51 | self.suites = self.loader.discover() | 59 | self.suites = self.loader.discover() |
52 | 60 | ||
53 | def runTests(self): | 61 | def runTests(self, skips=[]): |
54 | self.runner = self.runnerClass(self, descriptions=False, verbosity=2) | 62 | self.runner = self.runnerClass(self, descriptions=False, verbosity=2) |
55 | 63 | ||
64 | # Dinamically skip those tests specified though arguments | ||
65 | self.skipTests(skips) | ||
66 | |||
56 | self._run_start_time = time.time() | 67 | self._run_start_time = time.time() |
57 | result = self.runner.run(self.suites) | 68 | result = self.runner.run(self.suites) |
58 | self._run_end_time = time.time() | 69 | self._run_end_time = time.time() |
@@ -128,7 +139,8 @@ class OETestContextExecutor(object): | |||
128 | self.tc_kwargs = {} | 139 | self.tc_kwargs = {} |
129 | self.tc_kwargs['init'] = {} | 140 | self.tc_kwargs['init'] = {} |
130 | self.tc_kwargs['load'] = {} | 141 | self.tc_kwargs['load'] = {} |
131 | self.tc_kwargs['run'] = {} | 142 | self.tc_kwargs['list'] = {} |
143 | self.tc_kwargs['run'] = {} | ||
132 | 144 | ||
133 | self.tc_kwargs['init']['logger'] = self._setup_logger(logger, args) | 145 | self.tc_kwargs['init']['logger'] = self._setup_logger(logger, args) |
134 | if args.test_data_file: | 146 | if args.test_data_file: |
@@ -143,6 +155,8 @@ class OETestContextExecutor(object): | |||
143 | else: | 155 | else: |
144 | self.tc_kwargs['load']['modules'] = [] | 156 | self.tc_kwargs['load']['modules'] = [] |
145 | 157 | ||
158 | self.tc_kwargs['run']['skips'] = [] | ||
159 | |||
146 | self.module_paths = args.CASES_PATHS | 160 | self.module_paths = args.CASES_PATHS |
147 | 161 | ||
148 | def _pre_run(self): | 162 | def _pre_run(self): |
@@ -159,7 +173,7 @@ class OETestContextExecutor(object): | |||
159 | sys.exit(1) | 173 | sys.exit(1) |
160 | 174 | ||
161 | if args.list_tests: | 175 | if args.list_tests: |
162 | rc = self.tc.listTests(args.list_tests, **self.tc_kwargs['run']) | 176 | rc = self.tc.listTests(args.list_tests, **self.tc_kwargs['list']) |
163 | else: | 177 | else: |
164 | self._pre_run() | 178 | self._pre_run() |
165 | rc = self.tc.runTests(**self.tc_kwargs['run']) | 179 | rc = self.tc.runTests(**self.tc_kwargs['run']) |
diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py index 990c761f29..9e90d3c256 100644 --- a/meta/lib/oeqa/selftest/context.py +++ b/meta/lib/oeqa/selftest/context.py | |||
@@ -25,14 +25,14 @@ class OESelftestTestContext(OETestContext): | |||
25 | self.custommachine = None | 25 | self.custommachine = None |
26 | self.config_paths = config_paths | 26 | self.config_paths = config_paths |
27 | 27 | ||
28 | def runTests(self, machine=None): | 28 | def runTests(self, machine=None, skips=[]): |
29 | if machine: | 29 | if machine: |
30 | self.custommachine = machine | 30 | self.custommachine = machine |
31 | if machine == 'random': | 31 | if machine == 'random': |
32 | self.custommachine = choice(self.machines) | 32 | self.custommachine = choice(self.machines) |
33 | self.logger.info('Run tests with custom MACHINE set to: %s' % \ | 33 | self.logger.info('Run tests with custom MACHINE set to: %s' % \ |
34 | self.custommachine) | 34 | self.custommachine) |
35 | return super(OESelftestTestContext, self).runTests() | 35 | return super(OESelftestTestContext, self).runTests(skips) |
36 | 36 | ||
37 | def listTests(self, display_type, machine=None): | 37 | def listTests(self, display_type, machine=None): |
38 | return super(OESelftestTestContext, self).listTests(display_type) | 38 | return super(OESelftestTestContext, self).listTests(display_type) |
@@ -51,6 +51,9 @@ class OESelftestTestContextExecutor(OETestContextExecutor): | |||
51 | group.add_argument('-a', '--run-all-tests', default=False, | 51 | group.add_argument('-a', '--run-all-tests', default=False, |
52 | action="store_true", dest="run_all_tests", | 52 | action="store_true", dest="run_all_tests", |
53 | help='Run all (unhidden) tests') | 53 | help='Run all (unhidden) tests') |
54 | group.add_argument('-R', '--skip-tests', required=False, action='store', | ||
55 | nargs='+', dest="skips", default=None, | ||
56 | help='Run all (unhidden) tests except the ones specified. Format should be <module>[.<class>[.<test_method>]]') | ||
54 | group.add_argument('-r', '--run-tests', required=False, action='store', | 57 | group.add_argument('-r', '--run-tests', required=False, action='store', |
55 | nargs='+', dest="run_tests", default=None, | 58 | nargs='+', dest="run_tests", default=None, |
56 | help='Select what tests to run (modules, classes or test methods). Format should be: <module>.<class>.<test_method>') | 59 | help='Select what tests to run (modules, classes or test methods). Format should be: <module>.<class>.<test_method>') |
@@ -133,6 +136,8 @@ class OESelftestTestContextExecutor(OETestContextExecutor): | |||
133 | copyfile(self.tc_kwargs['init']['config_paths']['bblayers'], | 136 | copyfile(self.tc_kwargs['init']['config_paths']['bblayers'], |
134 | self.tc_kwargs['init']['config_paths']['bblayers_backup']) | 137 | self.tc_kwargs['init']['config_paths']['bblayers_backup']) |
135 | 138 | ||
139 | self.tc_kwargs['run']['skips'] = args.skips | ||
140 | |||
136 | def _pre_run(self): | 141 | def _pre_run(self): |
137 | def _check_required_env_variables(vars): | 142 | def _check_required_env_variables(vars): |
138 | for var in vars: | 143 | for var in vars: |
@@ -203,7 +208,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor): | |||
203 | sys.exit(1) | 208 | sys.exit(1) |
204 | 209 | ||
205 | if args.list_tests: | 210 | if args.list_tests: |
206 | rc = self.tc.listTests(args.list_tests, **self.tc_kwargs['run']) | 211 | rc = self.tc.listTests(args.list_tests, **self.tc_kwargs['list']) |
207 | else: | 212 | else: |
208 | self._pre_run() | 213 | self._pre_run() |
209 | rc = self.tc.runTests(**self.tc_kwargs['run']) | 214 | rc = self.tc.runTests(**self.tc_kwargs['run']) |