xref: /linux/tools/testing/selftests/liveupdate/run-vmtests.sh (revision 7b24dd46a70e94d8db83b50a04d46690fac216d0)
1*89dd1421SPasha Tatashin#!/bin/bash
2*89dd1421SPasha Tatashin# SPDX-License-Identifier: GPL-2.0
3*89dd1421SPasha Tatashin
4*89dd1421SPasha TatashinSCRIPT_DIR=$(dirname "$(realpath "$0")")
5*89dd1421SPasha TatashinTEST_RUNNER="$SCRIPT_DIR/vmtest.sh"
6*89dd1421SPasha Tatashin
7*89dd1421SPasha TatashinTARGETS=("x86_64" "aarch64")
8*89dd1421SPasha Tatashin
9*89dd1421SPasha TatashinGREEN='\033[0;32m'
10*89dd1421SPasha TatashinRED='\033[0;31m'
11*89dd1421SPasha TatashinYELLOW='\033[1;33m'
12*89dd1421SPasha TatashinNC='\033[0m'
13*89dd1421SPasha Tatashin
14*89dd1421SPasha Tatashinpassed=0
15*89dd1421SPasha Tatashinfailed=0
16*89dd1421SPasha Tatashinskipped=0
17*89dd1421SPasha Tatashin
18*89dd1421SPasha TatashinTEST_NAMES=(
19*89dd1421SPasha Tatashin	"luo_kexec_simple"
20*89dd1421SPasha Tatashin	"luo_multi_session"
21*89dd1421SPasha Tatashin	"luo_stress_files"
22*89dd1421SPasha Tatashin	"luo_stress_sessions"
23*89dd1421SPasha Tatashin)
24*89dd1421SPasha Tatashin
25*89dd1421SPasha Tatashinfunction usage() {
26*89dd1421SPasha Tatashin	cat <<EOF
27*89dd1421SPasha Tatashin$0 [-k] [-o output_dir] [-h]
28*89dd1421SPasha TatashinOptions:
29*89dd1421SPasha Tatashin	-k)	keep logs
30*89dd1421SPasha Tatashin	-o)	specify output directory
31*89dd1421SPasha Tatashin	-h)	display this help
32*89dd1421SPasha TatashinEOF
33*89dd1421SPasha Tatashin}
34*89dd1421SPasha Tatashin
35*89dd1421SPasha Tatashinfunction pass() {
36*89dd1421SPasha Tatashin	echo -e "${GREEN}PASS${NC}"
37*89dd1421SPasha Tatashin	((passed++))
38*89dd1421SPasha Tatashin}
39*89dd1421SPasha Tatashin
40*89dd1421SPasha Tatashinfunction skip() {
41*89dd1421SPasha Tatashin	echo -e "${YELLOW}SKIP${NC}"
42*89dd1421SPasha Tatashin	((skipped++))
43*89dd1421SPasha Tatashin}
44*89dd1421SPasha Tatashin
45*89dd1421SPasha Tatashinfunction fail() {
46*89dd1421SPasha Tatashin	echo -e "${RED}FAIL${NC}"
47*89dd1421SPasha Tatashin	((failed++))
48*89dd1421SPasha Tatashin}
49*89dd1421SPasha Tatashin
50*89dd1421SPasha Tatashinfunction main() {
51*89dd1421SPasha Tatashin	while getopts 'hko:' opt; do
52*89dd1421SPasha Tatashin		case $opt in
53*89dd1421SPasha Tatashin		k) keep_logs=1 ;;
54*89dd1421SPasha Tatashin		o) output_dir=$OPTARG ;;
55*89dd1421SPasha Tatashin		h) usage; exit 0 ;;
56*89dd1421SPasha Tatashin		*) echo Unknown argument "$opt"
57*89dd1421SPasha Tatashin		   usage; exit 1 ;;
58*89dd1421SPasha Tatashin		esac
59*89dd1421SPasha Tatashin	done
60*89dd1421SPasha Tatashin
61*89dd1421SPasha Tatashin	if [ -n "$keep_logs" ]; then
62*89dd1421SPasha Tatashin		if [ -z "$output_dir" ]; then
63*89dd1421SPasha Tatashin			output_dir="$SCRIPT_DIR/results_$(date +%Y%m%d_%H%M%S)"
64*89dd1421SPasha Tatashin		fi;
65*89dd1421SPasha Tatashin		mkdir -p "$output_dir"
66*89dd1421SPasha Tatashin	else
67*89dd1421SPasha Tatashin		output_dir=$(mktemp -d /tmp/luo.XXXXXXXX)
68*89dd1421SPasha Tatashin		trap 'rm -fr "$output_dir"' EXIT
69*89dd1421SPasha Tatashin	fi
70*89dd1421SPasha Tatashin
71*89dd1421SPasha Tatashin	for arch in "${TARGETS[@]}"; do
72*89dd1421SPasha Tatashin		for test_name in "${TEST_NAMES[@]}"; do
73*89dd1421SPasha Tatashin			log="$output_dir/${arch}_${test_name}.log"
74*89dd1421SPasha Tatashin
75*89dd1421SPasha Tatashin			printf "  -> %-8s %-24s ... " "$arch" "$test_name"
76*89dd1421SPasha Tatashin
77*89dd1421SPasha Tatashin			"$TEST_RUNNER" -t "$arch" -T "$test_name" &> "$log"
78*89dd1421SPasha Tatashin			exit_code=$?
79*89dd1421SPasha Tatashin
80*89dd1421SPasha Tatashin			case $exit_code in
81*89dd1421SPasha Tatashin			0) pass;;
82*89dd1421SPasha Tatashin			4) skip;;
83*89dd1421SPasha Tatashin			*) fail;;
84*89dd1421SPasha Tatashin			esac
85*89dd1421SPasha Tatashin		done
86*89dd1421SPasha Tatashin		echo ""
87*89dd1421SPasha Tatashin	done
88*89dd1421SPasha Tatashin
89*89dd1421SPasha Tatashin	echo "SUMMARY: PASS=$passed SKIP=$skipped FAIL=$failed"
90*89dd1421SPasha Tatashin	if [ -n "$keep_logs" ]; then
91*89dd1421SPasha Tatashin		echo "Logs: $output_dir"
92*89dd1421SPasha Tatashin	fi
93*89dd1421SPasha Tatashin
94*89dd1421SPasha Tatashin	exit $((failed != 0))
95*89dd1421SPasha Tatashin}
96*89dd1421SPasha Tatashin
97*89dd1421SPasha Tatashinmain "$@"
98