[autotest-client-tests][PATCH] UBUNTU: SAUCE: ubuntu_qrt_kernel_aslr_collisions: improve test granularity
Po-Hsu Lin
po-hsu.lin at canonical.com
Fri Jun 10 10:49:44 UTC 2022
Improve the test granularity like how we do it for the
ubuntu_qrt_kernel_security test, run sub test cases one-by-one with:
python2 test-kernel-aslr-collisions.py -v TestClass.TestMethod
Note that the KernelASLRCollisionsTest.test_stack_collision test will
take about 8 minutes to run, set timeout to 15 minutes to guarantee
it can finish in time.
Patch tested with T-3.13 on bare-metal node "gonzo", and it works as
expected.
Signed-off-by: Po-Hsu Lin <po-hsu.lin at canonical.com>
---
ubuntu_qrt_kernel_aslr_collisions/control | 19 ++++++++++++++++++-
.../ubuntu_qrt_kernel_aslr_collisions.py | 2 +-
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/ubuntu_qrt_kernel_aslr_collisions/control b/ubuntu_qrt_kernel_aslr_collisions/control
index 26074501..8970cee0 100644
--- a/ubuntu_qrt_kernel_aslr_collisions/control
+++ b/ubuntu_qrt_kernel_aslr_collisions/control
@@ -12,6 +12,23 @@ result = job.run_test_detail(NAME, test_name='setup', tag='setup', timeout=60*60
if result == 'ERROR':
print("ERROR: test setup has failed, skipping all the sub tests")
else:
- result = job.run_test_detail(NAME, test_name='test-kernel-aslr-collisions.py', tag='test-kernel-aslr-collisions.py', timeout=60*60*2)
+ fn = os.path.join(job.bindir, 'tmp', NAME, 'src', 'qa-regression-testing', 'scripts', 'test-kernel-aslr-collisions.py')
+ cmd = 'grep -e "class .*Test.*:" -e "def test_.*:" {} | sed "s/(.*)://"'.format(fn)
+ output = utils.system_output(cmd, verbose=False).splitlines()
+ all_tests = {}
+ for line in output:
+ item = line.strip()
+ if item.startswith('class '):
+ category = item.replace('class ', '')
+ all_tests[category] = []
+ elif item.startswith('def '):
+ sub_test = item.replace('def ', '')
+ all_tests[category].append(sub_test)
+
+ for category in all_tests:
+ if all_tests[category]:
+ for sub_test in all_tests[category]:
+ test = '{}.{}'.format(category, sub_test)
+ job.run_test_detail(NAME, test_name=test, tag=test, timeout=60*15)
# vi:set ts=4 sw=4 expandtab syntax=python:
diff --git a/ubuntu_qrt_kernel_aslr_collisions/ubuntu_qrt_kernel_aslr_collisions.py b/ubuntu_qrt_kernel_aslr_collisions/ubuntu_qrt_kernel_aslr_collisions.py
index 51dab5ed..288371a5 100644
--- a/ubuntu_qrt_kernel_aslr_collisions/ubuntu_qrt_kernel_aslr_collisions.py
+++ b/ubuntu_qrt_kernel_aslr_collisions/ubuntu_qrt_kernel_aslr_collisions.py
@@ -52,7 +52,7 @@ class ubuntu_qrt_kernel_aslr_collisions(test.test):
scripts = os.path.join(self.srcdir, 'qa-regression-testing', 'scripts')
os.chdir(scripts)
- cmd = 'python2 ./%s -v' % test_name
+ cmd = 'python2 ./test-kernel-aslr-collisions.py -v %s' % test_name
self.results = utils.system_output(cmd, retain_output=True)
--
2.25.1
More information about the kernel-team
mailing list