baremetal_benchmarks=1
baremetal_tests=2
kvm_tests=3
+ kvm_fuzzing_tests=4
def get_job_bundle_content(server, job):
try:
def check_job_all_test_cases_state_count(server, job):
content = get_job_bundle_content(server, job)
+ # FIXME:Those tests are part of the boot actions and fail randomly but
+ # doesn't affect the behaviour of the tests. We should update our Lava
+ # installation and try to reproduce it. This error was encountered on
+ # Ubuntu 16.04.
+ tests_known_to_fail=['mount', 'df', 'ls', 'ip', 'wait_for_test_image_prompt']
+
passed_tests=0
failed_tests=0
for run in content['test_runs']:
if 'test_case_id' in result :
if result['result'] in 'pass':
passed_tests+=1
- elif result['test_case_id'] in 'wait_for_test_image_prompt':
- # FIXME:This test is part of the boot action and fails
- # randomly but doesn't affect the behaviour of the tests.
- # No reply on the Lava IRC channel yet. We should update
- # our Lava installation and try to reproduce it. This error
- # was encountered ont the KVM trusty image only. Not seen
- # on Xenial at this point.
+ elif result['test_case_id'] in tests_known_to_fail:
pass
else:
failed_tests+=1
def fetch_benchmark_results(server, job):
content = get_job_bundle_content(server, job)
testcases = ['processed_results_close.csv',
+ 'processed_results_ioctl.csv',
'processed_results_open_efault.csv',
+ 'processed_results_open_enoent.csv',
'processed_results_dup_close.csv',
+ 'processed_results_raw_syscall_getpid.csv',
'processed_results_lttng_test_filter.csv']
# The result bundle is a large JSON containing the results of every testcase
job = OrderedDict({
'health_check': False,
'job_name': name,
- 'device_type':build_device,
+ 'device_type': build_device,
'tags': [ ],
- 'timeout': 18000,
+ 'timeout': 7200,
'actions': []
})
if build_device in 'x86':
packages=['bsdtar', 'psmisc', 'wget', 'python3', 'python3-pip', \
'libglib2.0-dev', 'libffi-dev', 'elfutils', 'libdw-dev', \
'libelf-dev', 'libmount-dev', 'libxml2', 'libpfm4-dev', \
- 'libnuma-dev']
+ 'libnuma-dev', 'python3-dev', 'swig', 'stress']
command = OrderedDict({
'command': 'lava_command_run',
'parameters': {
'revision': 'master',
'testdef': 'lava/baremetal-tests/failing-close.yml'
},
+ {
+ 'git-repo': 'https://github.com/lttng/lttng-ci.git',
+ 'revision': 'master',
+ 'testdef': 'lava/baremetal-tests/failing-ioctl.yml'
+ },
{
'git-repo': 'https://github.com/lttng/lttng-ci.git',
'revision': 'master',
'revision': 'master',
'testdef': 'lava/baremetal-tests/success-dup-close.yml'
},
+ {
+ 'git-repo': 'https://github.com/lttng/lttng-ci.git',
+ 'revision': 'master',
+ 'testdef': 'lava/baremetal-tests/raw-syscall-getpid.yml'
+ },
+ {
+ 'git-repo': 'https://github.com/lttng/lttng-ci.git',
+ 'revision': 'master',
+ 'testdef': 'lava/baremetal-tests/failing-open-enoent.yml'
+ },
{
'git-repo': 'https://github.com/lttng/lttng-ci.git',
'revision': 'master',
'testdef': 'lava/baremetal-tests/lttng-test-filter.yml'
}
],
- 'timeout': 18000
+ 'timeout': 7200
}
})
return command
'testdef': 'lava/baremetal-tests/perf-tests.yml'
}
],
- 'timeout': 18000
+ 'timeout': 3600
}
})
return command
'testdef': 'lava/baremetal-tests/destructive-tests.yml'
}
],
- 'timeout': 18000
+ 'timeout': 7200
+ }
+ })
+ return command
+def get_kprobes_test_cmd():
+ command = OrderedDict({
+ 'command': 'lava_test_shell',
+ 'parameters': {
+ 'testdef_repos': [
+ {
+ 'git-repo': 'https://github.com/lttng/lttng-ci.git',
+ 'revision': 'master',
+ 'testdef': 'lava/baremetal-tests/kprobe-fuzzing-tests.yml'
+ }
+ ],
+ 'timeout': 7200
}
})
return command
'commands': [
'pip3 install --upgrade pip',
'hash -r',
- 'git clone https://github.com/frdeso/syscall-bench-it.git bm',
'pip3 install vlttng',
],
- 'timeout': 18000
+ 'timeout': 3600
}
})
vlttng_cmd = 'vlttng --jobs=$(nproc) --profile urcu-master' \
- ' --profile babeltrace-stable-1.4 ' \
+ ' --override projects.babeltrace.build-env.PYTHON=python3' \
+ ' --override projects.babeltrace.build-env.PYTHON_CONFIG=python3-config' \
+ ' --profile babeltrace-stable-1.4' \
+ ' --profile babeltrace-python' \
' --profile lttng-tools-master' \
' --override projects.lttng-tools.checkout='+lttng_tools_commit + \
' --profile lttng-tools-no-man-pages'
test_type = TestType.baremetal_tests
elif args.type in 'kvm-tests':
test_type = TestType.kvm_tests
+ elif args.type in 'kvm-fuzzing-tests':
+ test_type = TestType.kvm_fuzzing_tests
else:
print('argument -t/--type {} unrecognized. Exiting...'.format(args.type))
return -1
elif test_type is TestType.baremetal_tests:
j = create_new_job(args.jobname, build_device='x86')
j['actions'].append(get_deploy_cmd_x86(args.jobname, args.kernel, args.kmodule, args.lmodule))
- elif test_type is TestType.kvm_tests:
+ elif test_type is TestType.kvm_tests or test_type is TestType.kvm_fuzzing_tests:
j = create_new_job(args.jobname, build_device='kvm')
j['actions'].append(get_deploy_cmd_kvm(args.jobname, args.kernel, args.kmodule, args.lmodule))
j['actions'].append(get_env_setup_cmd('kvm', args.tools_commit, args.ust_commit))
j['actions'].append(get_kvm_tests_cmd())
j['actions'].append(get_results_cmd(stream_name='tests-kernel'))
+ elif test_type is TestType.kvm_fuzzing_tests:
+ if args.ust_commit is None:
+ print('Tests runs need -uc/--ust-commit options. Exiting...')
+ return -1
+ j['actions'].append(get_config_cmd('kvm'))
+ j['actions'].append(get_env_setup_cmd('kvm', args.tools_commit, args.ust_commit))
+ j['actions'].append(get_kprobes_test_cmd())
+ j['actions'].append(get_results_cmd(stream_name='tests-kernel'))
else:
assert False, 'Unknown test type'