mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 00:39:46 +00:00
oeqa/core/tests: Add tests of OEQA Threaded mode
Add needed tests to validate the OEQA Threaded mode, the remaining parts are tested by the OEQA without Threaded mode. - test_loader.py: Add a test to validate rules when creating the list of test suites. - test_decorators.py: Add oetimeout test because the threaded mode uses Timer instead of signal. [YOCTO #11450] (From OE-Core rev: fb9d91ca34c1b5d3e0034f5135e71f964fca5b82) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
f9102ab1ed
commit
a4eef558c9
@@ -0,0 +1,12 @@
|
|||||||
|
# Copyright (C) 2017 Intel Corporation
|
||||||
|
# Released under the MIT license (see COPYING.MIT)
|
||||||
|
|
||||||
|
from oeqa.core.case import OETestCase
|
||||||
|
|
||||||
|
class ThreadedTest(OETestCase):
|
||||||
|
def test_threaded_no_depends(self):
|
||||||
|
self.assertTrue(True, msg='How is this possible?')
|
||||||
|
|
||||||
|
class ThreadedTest2(OETestCase):
|
||||||
|
def test_threaded_same_module(self):
|
||||||
|
self.assertTrue(True, msg='How is this possible?')
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# Copyright (C) 2017 Intel Corporation
|
||||||
|
# Released under the MIT license (see COPYING.MIT)
|
||||||
|
|
||||||
|
from oeqa.core.case import OETestCase
|
||||||
|
|
||||||
|
class ThreadedTestAlone(OETestCase):
|
||||||
|
def test_threaded_alone(self):
|
||||||
|
self.assertTrue(True, msg='How is this possible?')
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# Copyright (C) 2017 Intel Corporation
|
||||||
|
# Released under the MIT license (see COPYING.MIT)
|
||||||
|
|
||||||
|
from oeqa.core.case import OETestCase
|
||||||
|
from oeqa.core.decorator.depends import OETestDepends
|
||||||
|
|
||||||
|
class ThreadedTest3(OETestCase):
|
||||||
|
@OETestDepends(['threaded.ThreadedTest.test_threaded_no_depends'])
|
||||||
|
def test_threaded_depends(self):
|
||||||
|
self.assertTrue(True, msg='How is this possible?')
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# Copyright (C) 2017 Intel Corporation
|
||||||
|
# Released under the MIT license (see COPYING.MIT)
|
||||||
|
|
||||||
|
from oeqa.core.case import OETestCase
|
||||||
|
|
||||||
|
class ThreadedTestModule(OETestCase):
|
||||||
|
def test_threaded_module(self):
|
||||||
|
self.assertTrue(True, msg='How is this possible?')
|
||||||
|
|
||||||
|
class ThreadedTestModule2(OETestCase):
|
||||||
|
def test_threaded_module2(self):
|
||||||
|
self.assertTrue(True, msg='How is this possible?')
|
||||||
@@ -33,3 +33,13 @@ class TestBase(unittest.TestCase):
|
|||||||
tc.loadTests(self.cases_path, modules=modules, tests=tests,
|
tc.loadTests(self.cases_path, modules=modules, tests=tests,
|
||||||
filters=filters)
|
filters=filters)
|
||||||
return tc
|
return tc
|
||||||
|
|
||||||
|
def _testLoaderThreaded(self, d={}, modules=[],
|
||||||
|
tests=[], filters={}):
|
||||||
|
from oeqa.core.threaded import OETestContextThreaded
|
||||||
|
|
||||||
|
tc = OETestContextThreaded(d, self.logger)
|
||||||
|
tc.loadTests(self.cases_path, modules=modules, tests=tests,
|
||||||
|
filters=filters)
|
||||||
|
|
||||||
|
return tc
|
||||||
|
|||||||
@@ -131,5 +131,17 @@ class TestTimeoutDecorator(TestBase):
|
|||||||
msg = "OETestTimeout didn't restore SIGALRM"
|
msg = "OETestTimeout didn't restore SIGALRM"
|
||||||
self.assertIs(alarm_signal, signal.getsignal(signal.SIGALRM), msg=msg)
|
self.assertIs(alarm_signal, signal.getsignal(signal.SIGALRM), msg=msg)
|
||||||
|
|
||||||
|
def test_timeout_thread(self):
|
||||||
|
tests = ['timeout.TimeoutTest.testTimeoutPass']
|
||||||
|
msg = 'Failed to run test using OETestTimeout'
|
||||||
|
tc = self._testLoaderThreaded(modules=self.modules, tests=tests)
|
||||||
|
self.assertTrue(tc.runTests().wasSuccessful(), msg=msg)
|
||||||
|
|
||||||
|
def test_timeout_threaded_fail(self):
|
||||||
|
tests = ['timeout.TimeoutTest.testTimeoutFail']
|
||||||
|
msg = "OETestTimeout test didn't timeout as expected"
|
||||||
|
tc = self._testLoaderThreaded(modules=self.modules, tests=tests)
|
||||||
|
self.assertFalse(tc.runTests().wasSuccessful(), msg=msg)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
# Copyright (C) 2016 Intel Corporation
|
# Copyright (C) 2016-2017 Intel Corporation
|
||||||
# Released under the MIT license (see COPYING.MIT)
|
# Released under the MIT license (see COPYING.MIT)
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@@ -82,5 +82,33 @@ class TestLoader(TestBase):
|
|||||||
msg = 'Expected modules from two different paths'
|
msg = 'Expected modules from two different paths'
|
||||||
self.assertEqual(modules, expected_modules, msg=msg)
|
self.assertEqual(modules, expected_modules, msg=msg)
|
||||||
|
|
||||||
|
def test_loader_threaded(self):
|
||||||
|
cases_path = self.cases_path
|
||||||
|
|
||||||
|
self.cases_path = [os.path.join(self.cases_path, 'loader', 'threaded')]
|
||||||
|
|
||||||
|
tc = self._testLoaderThreaded()
|
||||||
|
self.assertEqual(len(tc.suites), 3, "Expected to be 3 suites")
|
||||||
|
|
||||||
|
case_ids = ['threaded.ThreadedTest.test_threaded_no_depends',
|
||||||
|
'threaded.ThreadedTest2.test_threaded_same_module',
|
||||||
|
'threaded_depends.ThreadedTest3.test_threaded_depends']
|
||||||
|
for case in tc.suites[0]._tests:
|
||||||
|
self.assertEqual(case.id(),
|
||||||
|
case_ids[tc.suites[0]._tests.index(case)])
|
||||||
|
|
||||||
|
case_ids = ['threaded_alone.ThreadedTestAlone.test_threaded_alone']
|
||||||
|
for case in tc.suites[1]._tests:
|
||||||
|
self.assertEqual(case.id(),
|
||||||
|
case_ids[tc.suites[1]._tests.index(case)])
|
||||||
|
|
||||||
|
case_ids = ['threaded_module.ThreadedTestModule.test_threaded_module',
|
||||||
|
'threaded_module.ThreadedTestModule2.test_threaded_module2']
|
||||||
|
for case in tc.suites[2]._tests:
|
||||||
|
self.assertEqual(case.id(),
|
||||||
|
case_ids[tc.suites[2]._tests.index(case)])
|
||||||
|
|
||||||
|
self.cases_path = cases_path
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user