@@ -16,8 +16,7 @@ results = job.run_test_detail('ubuntu_ltp', test_name='setup', tag='setup', time
tests = [
'fs', 'mm', 'commands',
- 'cpuhotplug', 'net.ipv6_lib', 'cve', 'crypto',
- 'kernel_misc'
+ 'cpuhotplug', 'net.ipv6_lib', 'cve', 'crypto'
]
for test in tests:
results = job.run_test_detail('ubuntu_ltp', test_name=test, tag=test, timeout=60*60*2)
new file mode 100644
@@ -0,0 +1 @@
+Blacklisted on this series as this kernel_misc test was splitted out from ubuntu_ltp, which got this series blacklisted as well.
new file mode 100644
@@ -0,0 +1 @@
+Blacklisted on this series as this kernel_misc test was splitted out from ubuntu_ltp, which got this series blacklisted as well.
new file mode 100644
@@ -0,0 +1,28 @@
+AUTHOR = "Ubuntu"
+NAME = "ubuntu_ltp_kernel_misc"
+CRITERIA = """
+Use the upstream LTP repository
+"""
+SUITE = "None"
+TIME = "MEDIUM"
+TEST_CLASS = 'kernel'
+TEST_CATEGORY = 'Functional'
+TEST_TYPE = "client"
+DOC = ""
+
+# This test will take about 50min to run on google cloud
+result = job.run_test_detail(NAME, test_name='setup', tag='setup', timeout=60*40)
+if result == 'ERROR':
+ print("ERROR: test failed to build, skipping all the sub tests")
+else:
+ fn = '/opt/ltp/runtest/kernel_misc'
+ with open(fn , 'r') as f:
+ for line in f:
+ if line.strip() and not line.startswith('#'):
+ with open ('/tmp/target' , 'w') as t:
+ t.write(line)
+ testcase = line.split()[0]
+ job.run_test_detail(NAME, test_name=testcase, tag=testcase, timeout=60*20)
+
+
+# vi:set ts=4 sw=4 expandtab syntax=python:
new file mode 100644
@@ -0,0 +1,112 @@
+#
+#
+import multiprocessing
+import os
+import platform
+import re
+import sys
+import shutil
+import signal
+from autotest.client import test, utils
+from autotest.client.shared import error
+
+# python is redefining the SIGXFSZ handler internally, blocking the delivery of
+# this signal to any forked task. Make sure to restore the default signal
+# handler for SIGXFSZ before running any test.
+try:
+ signal.signal(signal.SIGXFSZ, signal.SIG_DFL)
+except Exception, e:
+ print(e)
+ sys.stdout.flush()
+
+
+class ubuntu_ltp_kernel_misc(test.test):
+ version = 1
+
+ def install_required_pkgs(self):
+ arch = platform.processor()
+
+ pkgs = [
+ 'automake',
+ 'bison',
+ 'build-essential',
+ 'byacc',
+ 'flex',
+ 'git',
+ 'libacl1-dev',
+ 'libaio-dev',
+ 'libcap-dev',
+ 'libmm-dev',
+ 'libnuma-dev',
+ 'libsctp-dev',
+ 'libselinux1-dev',
+ 'libssl-dev',
+ 'libtirpc-dev',
+ 'pkg-config',
+ 'quota',
+ 'xfslibs-dev',
+ 'xfsprogs',
+ ]
+ gcc = 'gcc' if arch in ['ppc64le', 'aarch64', 's390x', 'riscv64'] else 'gcc-multilib'
+ pkgs.append(gcc)
+
+ cmd = 'yes "" | DEBIAN_FRONTEND=noninteractive apt-get install --yes --force-yes ' + ' '.join(pkgs)
+ self.results = utils.system_output(cmd, retain_output=True)
+
+ def initialize(self):
+ try:
+ self.series = platform.dist()[2]
+ except AttributeError:
+ import distro
+ self.series = distro.codename()
+ self.flavour = re.split('-\d*-', platform.uname()[2])[-1]
+ self.kernel = platform.uname()[2].split('-')[0]
+
+ # setup
+ #
+ # Automatically run when there is no autotest/client/tmp/<test-suite> directory
+ #
+ def setup(self):
+ self.install_required_pkgs()
+ self.job.require_gcc()
+ os.chdir(self.srcdir)
+ shutil.rmtree('ltp', ignore_errors=True)
+ branch = 'sru'
+ if self.series in ['trusty', 'xenial']:
+ branch = 'sru-' + self.series
+ print("Use a fixed branch for ESM series - {}".format(branch))
+
+ cmd = 'git clone -b {} --depth 1 git://kernel.ubuntu.com/ubuntu/ltp.git'.format(branch)
+ utils.system_output(cmd, retain_output=True)
+
+ # Print test suite HEAD SHA1 commit id for future reference
+ os.chdir(os.path.join(self.srcdir, 'ltp'))
+ title = utils.system_output("git log --oneline -1 | sed 's/(.*)//'", retain_output=False, verbose=False)
+ print("Latest commit in '{}' branch: {}".format(branch, title))
+
+ # Disable NTFS as we disable RW support
+ cmd = 'sed -i /ntfs/d lib/tst_supported_fs_types.c'
+ utils.system_output(cmd)
+
+ utils.make('autotools')
+ utils.configure()
+ try:
+ nprocs = '-j' + str(multiprocessing.cpu_count())
+ except:
+ nprocs = ''
+ utils.make(nprocs)
+ utils.make('install')
+
+ # run_once
+ #
+ # Driven by the control file for each individual test.
+ #
+ def run_once(self, test_name):
+ if test_name == 'setup':
+ return
+
+ cmd = '/opt/ltp/runltp -f /tmp/target -q -C /dev/null -l /dev/null -T /dev/null'
+ print(utils.system_output(cmd, verbose=False))
+ # /dev/loop# creation will be taken care by the runltp
+
+# vi:set ts=4 sw=4 expandtab syntax=python:
Move the kernel_misc test out of the LTP test suite, and run it like how we did for the ubuntu_ltp_syscalls test. This change can improve our test granularity and make the result hinting become more precise. The ubuntu_ltp test on KVM kernels is hanging with the tpci test in this kernel_misc test (lp:1947422), it should be able to finish properly with this test split out. (But it is still expected to see it hanging with this ubuntu_ltp_kernel_misc test.) The downside of this is that it will cost some extra time for the deployment and building the test suite. This change will require a test plan update on CKCT as well. Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com> --- ubuntu_ltp/control | 3 +- ubuntu_ltp_kernel_misc/blacklist.trusty | 1 + ubuntu_ltp_kernel_misc/blacklist.xenial | 1 + ubuntu_ltp_kernel_misc/control | 28 +++++ .../ubuntu_ltp_kernel_misc.py | 112 ++++++++++++++++++ 5 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 ubuntu_ltp_kernel_misc/blacklist.trusty create mode 100644 ubuntu_ltp_kernel_misc/blacklist.xenial create mode 100644 ubuntu_ltp_kernel_misc/control create mode 100644 ubuntu_ltp_kernel_misc/ubuntu_ltp_kernel_misc.py