#!/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 "$@" |