Merge ~kevinbecker/+git/autotest-client-tests:kevinbecker/oslat into ~canonical-kernel-team/+git/autotest-client-tests:master

Proposed by Kevin Becker
Status: Merged
Merge reported by: Po-Hsu Lin
Merged at revision: 576dc3e6c2f55a2b2d1a9cabb53f74cd68ebe721
Proposed branch: ~kevinbecker/+git/autotest-client-tests:kevinbecker/oslat
Merge into: ~canonical-kernel-team/+git/autotest-client-tests:master
Diff against target: 105 lines (+93/-0)
2 files modified
rt_tests_oslat/control (+19/-0)
rt_tests_oslat/rt_tests_oslat.py (+74/-0)
Reviewer Review Type Date Requested Status
Po-Hsu Lin Approve
Francis Ginther Approve
Review via email: mp+463150@code.launchpad.net

Commit message

UBUNTU: SAUCE: Added oslat test

For now this does not have a pass/fail and is only added for data gathering purposes.

Signed-off-by: Kevin Becker <email address hidden>

To post a comment you must log in.
Revision history for this message
Francis Ginther (fginther) wrote :

Looks good to start running.

review: Approve
Revision history for this message
Po-Hsu Lin (cypressyew) :
review: Approve
Revision history for this message
Po-Hsu Lin (cypressyew) wrote :

Applied and pushed, thanks.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/rt_tests_oslat/control b/rt_tests_oslat/control
0new file mode 1006440new file mode 100644
index 0000000..1ec0969
--- /dev/null
+++ b/rt_tests_oslat/control
@@ -0,0 +1,19 @@
1AUTHOR = '''
2Authors: Peter Xu <peterx@redhat.com>
3 '''
4NAME = "rt_tests_oslat"
5DOC = '''
6description rt test utils
7URL https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
8'''
9SUITE = "None"
10TIME = "MEDIUM"
11TEST_CLASS = 'kernel'
12TEST_CATEGORY = 'Functional'
13TEST_TYPE = 'client'
14
15result = job.run_test_detail('rt_tests_oslat', test_name='setup', tag='setup', timeout=60*5)
16if result == 'GOOD':
17 job.run_test('rt_tests_oslat', test_name='rt_tests_oslat', tag='rt_tests_oslat')
18else:
19 print("ERROR: test failed to build")
diff --git a/rt_tests_oslat/rt_tests_oslat.py b/rt_tests_oslat/rt_tests_oslat.py
0new file mode 10064420new file mode 100644
index 0000000..6e64cac
--- /dev/null
+++ b/rt_tests_oslat/rt_tests_oslat.py
@@ -0,0 +1,74 @@
1import multiprocessing
2import os
3import platform
4import re
5import shutil
6from autotest.client import canonical, test, utils
7from autotest.client.shared import error
8
9class rt_tests_oslat(test.test):
10 version = 1
11
12 def initialize(self):
13 self.flavour = re.split('-\d*-', platform.uname()[2])[-1]
14 self.arch = platform.processor()
15
16 def install_required_pkgs(self):
17 try:
18 series = platform.dist()[2]
19 except AttributeError:
20 import distro
21 series = distro.codename()
22
23 pkgs = [
24 'build-essential',
25 'git',
26 'libnuma-dev',
27 ]
28 gcc = 'gcc' if self.arch in ['ppc64le', 'aarch64', 's390x', 'riscv64'] else 'gcc-multilib'
29 pkgs.append(gcc)
30
31 cmd = 'yes "" | DEBIAN_FRONTEND=noninteractive apt-get install --yes --force-yes ' + ' '.join(pkgs)
32 self.results = utils.system_output(cmd, retain_output=True)
33
34 # setup
35 #
36 # Automatically run when there is no autotest/client/tmp/<test-suite> directory
37 #
38 def setup(self):
39 self.install_required_pkgs()
40 self.job.require_gcc()
41 os.chdir(self.srcdir)
42 shutil.rmtree('rt-tests', ignore_errors=True)
43 canonical.setup_proxy()
44 branch = 'main'
45 cmd = 'git clone -b {} https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git'.format(branch)
46 utils.system_output(cmd, retain_output=True)
47
48 # Print test suite HEAD SHA1 commit id for future reference
49 os.chdir(os.path.join(self.srcdir, 'rt-tests'))
50 title_local = utils.system_output("git log --oneline -1 | sed 's/(.*)//'", retain_output=False, verbose=False)
51 title_upstream = utils.system_output("git log --oneline | grep -v SAUCE | head -1", retain_output=False, verbose=False)
52 print("Latest commit in '{}' branch: {}".format(branch, title_local))
53 print("Latest upstream commit: {}".format(title_upstream))
54
55 try:
56 nprocs = '-j' + str(multiprocessing.cpu_count())
57 except:
58 nprocs = ''
59 utils.make(nprocs)
60
61
62 # run_once
63 #
64 # Driven by the control file for each individual test.
65 #
66 # Runs oslat for 60 seconds. This is just for data gathering purposes for now.
67 #
68 def run_once(self, test_name, args='--cpu-list 2-9 --rtprio 1 --duration 60 -q', exit_on_error=True):
69 if test_name == 'setup':
70 return
71
72 utils.system_output(self.srcdir + '/rt-tests/oslat ' + args, retain_output=True)
73
74 return

Subscribers

People subscribed via source and target branches