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