159 lines
5.7 KiB
Bash
159 lines
5.7 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Show the testcase list on demand.
|
||
|
if [[ "$1" == "TCLIST" ]]; then
|
||
|
if [[ "$(arch)" == "s390x" ]]; then
|
||
|
# Save the s390x machine time (regardless the rhel major):
|
||
|
# Almost all the testcases are failing there, and those, that
|
||
|
# do not, are flaky.
|
||
|
echo -n "notest.exp"
|
||
|
else
|
||
|
echo -n "bpf-asm.exp bpf.exp"
|
||
|
fi
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
_LOG=systemtap.check
|
||
|
cp systemtap.sum $_LOG
|
||
|
|
||
|
_cleanup()
|
||
|
{
|
||
|
rm $_LOG
|
||
|
}
|
||
|
trap _cleanup EXIT
|
||
|
|
||
|
set -xe
|
||
|
|
||
|
EXPECTED_PASSES_TRESHOLD=-1
|
||
|
|
||
|
if test $(rpm --eval '0%{rhel}') -eq 8; then
|
||
|
# systemtap-4.0-7.el8, kernel-4.18.0-64.el8
|
||
|
case `arch` in
|
||
|
x86_64)
|
||
|
EXPECTED_PASSES_TRESHOLD=55
|
||
|
sed -i '/FAIL: bigmap1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: cast_op_tracepoint.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: logging1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: perf1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: pr23875_loop.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: pr23875_smash.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: string3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: timer1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: timer2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||
|
;;
|
||
|
aarch64)
|
||
|
EXPECTED_PASSES_TRESHOLD=58
|
||
|
sed -i '/FAIL: bigmap1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: logging1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: perf1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: perf2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: pr23875_loop.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: pr23875_smash.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: string3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: timer2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||
|
;;
|
||
|
ppc64le)
|
||
|
EXPECTED_PASSES_TRESHOLD=53
|
||
|
sed -i '/FAIL: array.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: array_preinit.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: context_vars1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: context_vars2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: context_vars2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: context_vars3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: globals2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: globals3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: kprobes.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: logging1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: perf1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: perf2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: pr23875_loop.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: pr23875_loop.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: pr23875_smash.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: string3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: timer2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||
|
;;
|
||
|
s390x)
|
||
|
# Many testcases fail for s390x, many of them are flaky
|
||
|
# Not worth testing at all at this stage at all probably.
|
||
|
echo "INFO: UNSUPPORTED RHEL7 ARCHITECTIRE ($(arch))"
|
||
|
exit 0
|
||
|
;;
|
||
|
*)
|
||
|
echo "ERROR: UNSUPPORTED RHEL8 ARCHITECTIRE"
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
elif test $(rpm --eval '0%{rhel}') -eq 7; then
|
||
|
case `arch` in
|
||
|
x86_64)
|
||
|
# (rhel7) systemtap-3.3-3.el7.x86_64, kernel-3.10.0-993.el7.x86_64
|
||
|
if test $(rpm -q --queryformat='%{version}\n' kernel | awk -F. '{print $1}') -eq 3; then
|
||
|
EXPECTED_PASSES_TRESHOLD=32
|
||
|
sed -i '/FAIL: cast_op_tracepoint.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: perf2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||
|
elif test $(rpm -q --queryformat='%{version}\n' kernel | awk -F. '{print $1}') -eq 4; then
|
||
|
# (rhel-alt-7) systemtap-3.3-3.el7.x86_64, kernel-4.14.0-115.el7a.x86_64
|
||
|
echo "ERROR: known bug on rhel-alt ('map entry 0: Function not implemented')"
|
||
|
echo "<@fche> # CONFIG_BPF_SYSCALL is not set"
|
||
|
exit 0
|
||
|
else
|
||
|
echo "ERROR: UNSUPPORTED RHEL7 KERNEL VERSION"
|
||
|
exit 1
|
||
|
fi
|
||
|
;;
|
||
|
*)
|
||
|
echo "INFO: UNSUPPORTED RHEL7 ARCHITECTIRE ($(arch))"
|
||
|
exit 0
|
||
|
;;
|
||
|
esac
|
||
|
elif test $(rpm --eval '0%{fedora}') -eq 29; then
|
||
|
case `arch` in
|
||
|
x86_64)
|
||
|
EXPECTED_PASSES_TRESHOLD=33
|
||
|
sed -i '/FAIL: array.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: bigmap1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: cast_op_tracepoint.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: no_end.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: printf.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: string1.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: timer2.stp/d' $_LOG || :
|
||
|
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||
|
;;
|
||
|
*)
|
||
|
# No test results for other arches yet
|
||
|
true;
|
||
|
;;
|
||
|
esac
|
||
|
else
|
||
|
echo "ERROR: UNSUPPORTED RHELMAJOR"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
true _v_v_v_v_v_v_v_v_v_v_v_ UNEXPECTED FAILURES: _v_v_v_v_v_v_v_v_v_v_v_v_v_v_
|
||
|
fgrep 'FAIL: ' $_LOG || :
|
||
|
true -^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
|
||
|
|
||
|
|
||
|
EXPECTED_PASSES=$(grep -a '^PASS: ' $_LOG | wc -l)
|
||
|
UNEXPECTED_FAILURES=$(grep -a '^FAIL: ' $_LOG | wc -l)
|
||
|
|
||
|
test ${EXPECTED_PASSES_TRESHOLD} -gt 1
|
||
|
test 0${EXPECTED_PASSES} -ge 0${EXPECTED_PASSES_TRESHOLD}
|
||
|
test 0${UNEXPECTED_FAILURES} -eq 0
|
||
|
|
||
|
rm $_LOG
|
||
|
|
||
|
set +xe
|
||
|
|
||
|
|