blob: d656ce58c5a7d57105cfe07cfda924efb5b4cd4f [file]
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
SCRIPT_DIR=$(dirname "$(realpath "$0")")
TEST_RUNNER="$SCRIPT_DIR/vmtest.sh"
TARGETS=("x86_64" "aarch64")
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
passed=0
failed=0
skipped=0
TEST_NAMES=(
"luo_kexec_simple"
"luo_multi_session"
"luo_stress_files"
"luo_stress_sessions"
)
function usage() {
cat <<EOF
$0 [-k] [-o output_dir] [-h]
Options:
-k) keep logs
-o) specify output directory
-h) display this help
EOF
}
function pass() {
echo -e "${GREEN}PASS${NC}"
((passed++))
}
function skip() {
echo -e "${YELLOW}SKIP${NC}"
((skipped++))
}
function fail() {
echo -e "${RED}FAIL${NC}"
((failed++))
}
function main() {
while getopts 'hko:' opt; do
case $opt in
k) keep_logs=1 ;;
o) output_dir=$OPTARG ;;
h) usage; exit 0 ;;
*) echo Unknown argument "$opt"
usage; exit 1 ;;
esac
done
if [ -n "$keep_logs" ]; then
if [ -z "$output_dir" ]; then
output_dir="$SCRIPT_DIR/results_$(date +%Y%m%d_%H%M%S)"
fi;
mkdir -p "$output_dir"
else
output_dir=$(mktemp -d /tmp/luo.XXXXXXXX)
trap 'rm -fr "$output_dir"' EXIT
fi
for arch in "${TARGETS[@]}"; do
for test_name in "${TEST_NAMES[@]}"; do
log="$output_dir/${arch}_${test_name}.log"
printf " -> %-8s %-24s ... " "$arch" "$test_name"
"$TEST_RUNNER" -t "$arch" -T "$test_name" &> "$log"
exit_code=$?
case $exit_code in
0) pass;;
4) skip;;
*) fail;;
esac
done
echo ""
done
echo "SUMMARY: PASS=$passed SKIP=$skipped FAIL=$failed"
if [ -n "$keep_logs" ]; then
echo "Logs: $output_dir"
fi
exit $((failed != 0))
}
main "$@"