mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-07 01:05:07 -05:00
test: add system tests
Add a new set of tests for testing basic functionality, starting chronyd with root privileges on the actual system instead of the simulator. Tests numbered in the 100-199 range are considered destructive and intended to be used only on machines dedicated for development or testing. They are started by the run script only with the -d option. They may adjust/step the system clock and other clocks, block the RTC, enable HW timestamping, create SHM segments, etc. Other tests should not interfere with the system and should work even when another NTP server/client is running.
This commit is contained in:
64
test/system/run
Executable file
64
test/system/run
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
|
||||
print_help() {
|
||||
echo "$1 [-a] [-d] [TEST]..."
|
||||
}
|
||||
|
||||
run_test() {
|
||||
local result name=$1
|
||||
|
||||
if [ $destructive -ne 1 ] && [[ "$name" == 1[0-9][0-9]-* ]]; then
|
||||
echo "SKIP (destructive test)"
|
||||
return 9
|
||||
fi
|
||||
|
||||
./$name
|
||||
result=$?
|
||||
|
||||
if [ $result -ne 0 -a $result -ne 9 ]; then
|
||||
if [ $abort_on_fail -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
return $result
|
||||
}
|
||||
|
||||
passed=() failed=() skipped=()
|
||||
|
||||
abort_on_fail=0
|
||||
destructive=0
|
||||
|
||||
while getopts ":ad" opt; do
|
||||
case $opt in
|
||||
a) abort_on_fail=1;;
|
||||
d) destructive=1;;
|
||||
*) print_help "$0"; exit 3;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $[$OPTIND - 1]
|
||||
|
||||
[ $# -gt 0 ] && tests=($@) || tests=([0-9]*-*[^_])
|
||||
|
||||
for test in "${tests[@]}"; do
|
||||
printf "%s " "$test"
|
||||
run_test $test
|
||||
result=$?
|
||||
echo
|
||||
|
||||
case $result in
|
||||
0) passed=(${passed[@]} $test);;
|
||||
9) skipped=(${skipped[@]} $test);;
|
||||
*) failed=(${failed[@]} $test);;
|
||||
esac
|
||||
done
|
||||
|
||||
echo
|
||||
echo "SUMMARY:"
|
||||
echo " TOTAL $[${#passed[@]} + ${#failed[@]} + ${#skipped[@]}]"
|
||||
echo " PASSED ${#passed[@]}"
|
||||
echo " FAILED ${#failed[@]} (${failed[@]})"
|
||||
echo " SKIPPED ${#skipped[@]} (${skipped[@]})"
|
||||
|
||||
[ ${#failed[@]} -eq 0 ]
|
||||
Reference in New Issue
Block a user