88 lines
2.4 KiB
Bash
88 lines
2.4 KiB
Bash
#!/bin/bash -eu
|
|
|
|
PATH=/usr/sbin:/sbin:/usr/bin:/bin
|
|
|
|
getconfig() {
|
|
debian/bin/getconfig.py "$@"
|
|
}
|
|
|
|
# Look up current ABI name and 'localversion' (featureset/flavour) suffixes
|
|
abiname=$(getconfig version abiname)
|
|
arch=$(dpkg --print-architecture)
|
|
localversion=()
|
|
for featureset in $(getconfig base $arch featuresets); do
|
|
if [ "$(getconfig base '' $featureset enabled || echo True)" = True ]; then
|
|
for flavour in $(getconfig base $arch $featureset flavours); do
|
|
if [ "$featureset" = none ]; then
|
|
localversion+=(-$flavour)
|
|
else
|
|
localversion+=(-$featureset-$flavour)
|
|
fi
|
|
done
|
|
fi
|
|
done
|
|
steps=${#localversion[*]}
|
|
|
|
case "${ADT_REBOOT_MARK:-}" in
|
|
"")
|
|
step=-1
|
|
;;
|
|
step*)
|
|
step=${ADT_REBOOT_MARK#step}
|
|
;;
|
|
esac
|
|
|
|
if [ "$step" -ge 0 ]; then
|
|
ver=$abiname${localversion[$step]}
|
|
|
|
if [ "$(uname -r)" != "$ver" ]; then
|
|
echo >&2 "Should be running: $ver"
|
|
echo >&2 "Actually running: $(uname -r)"
|
|
else
|
|
cp -lR . $AUTOPKGTEST_TMP/build
|
|
cd $AUTOPKGTEST_TMP/build
|
|
make headers_install
|
|
|
|
# Ignore compiler warnings
|
|
{
|
|
make -C tools/testing/selftests &&
|
|
make -C tools/testing/selftests/memfd build_fuse
|
|
} 2>&1 || echo >&2 "Build failed"
|
|
|
|
# Enable testing CLONE_USERNS by unprivileged users
|
|
sysctl kernel.unprivileged_userns_clone=1
|
|
|
|
# Some tests will write to stderr despite being successful,
|
|
# and the exit code from make will be 0 even if tests failed.
|
|
# So we have to do some post-analysis...
|
|
set -o pipefail
|
|
{
|
|
make -C tools/testing/selftests quicktest=1 run_tests &&
|
|
make -C tools/testing/selftests/cpu-hotplug run_full_test &&
|
|
make -C tools/testing/selftests/memory-hotplug run_full_test &&
|
|
make -C tools/testing/selftests/memfd run_fuse &&
|
|
make -C tools/testing/selftests/timers run_destructive_tests
|
|
} 2>&1 | tee $AUTOPKGTEST_TMP/log
|
|
set +o pipefail
|
|
if grep -E '\[(FAIL|UNSUPPORTED)\]|recipe for target .run_tests. failed' $AUTOPKGTEST_TMP/log | \
|
|
grep -q -v \
|
|
-e '^selftests: fw_userhelper.sh \[FAIL\]' \
|
|
-e 'ftrace - function profiler with function tracing \[UNSUPPORTED\]' \
|
|
-e '^selftests: ftracetest \[FAIL\]' \
|
|
-e '|| echo .*\[FAIL\]' \
|
|
; then
|
|
echo >&2 "Unexpected failures found"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
step=$((step + 1))
|
|
|
|
if [ "$step" -lt "$steps" ]; then
|
|
# Load the next kernel
|
|
ver=$abiname${localversion[$step]}
|
|
kexec -l /boot/vmlinuz-$ver --initrd /boot/initrd.img-$ver --reuse-cmdline
|
|
/tmp/autopkgtest-reboot step$step
|
|
fi
|
|
|
|
exit 0
|