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