gnu-efi/tests/gen_tests.sh
Pete Batard 46aca420cc
Add build time QEMU UEFI tests
Use OVMF/AVMF and the UEFI Shell in a QEMU environment to validate that the
UEFI executables we build do run and produce the expected output.

The tests to run are flexibly defined is test_list.txt and can be expanded.

At this stage, only x64, ia32, aa64 and arm are run, which rely on the UEFI
firmwares found at https://github.com/pbatard/EfiFs/tree/gh-pages/AAVMF and
https://github.com/pbatard/EfiFs/tree/gh-pages/OVMF as well as Shell builds
from https://github.com/pbatard/UEFI-Shell.

Signed-off-by: Pete Batard <pete@akeo.ie>
2024-05-18 16:12:11 +01:00

41 lines
1.0 KiB
Bash
Executable File

#!/bin/env bash
## @file
# Test generation script for gnu-efi.
#
# Copyright (c) 2023-2024, Pete Batard <pete@akeo.ie>
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
##
TEST_DIR=./run
rm -rf $TEST_DIR
mkdir $TEST_DIR
test_number=0
while IFS=$'\r\n' read -r line; do
if [[ ${line:0:1} == "#" ]]; then
test_number=$((test_number + 1))
data_file=$(printf "%s/%03d %s.dat" $TEST_DIR $test_number "${line:2}")
setup_file=$(printf "%s/%03d setup.sh" $TEST_DIR $test_number)
teardown_file=$(printf "%s/%03d teardown.sh" $TEST_DIR $test_number)
elif [[ ${line:0:1} == ">" ]]; then
if [[ ! -f "$setup_file" ]]; then
echo "#!/bin/env bash" > "$setup_file"
chmod 755 "$setup_file"
fi
echo "${line:2}" >> "$setup_file"
elif [[ ${line:0:1} == "<" ]]; then
if [[ ! -f "$teardown_file" ]]; then
echo "#!/bin/env bash" > "$teardown_file"
chmod 755 "$teardown_file"
fi
echo "${line:2}" >> "$teardown_file"
elif [[ ! -z "$line" ]]; then
echo "${line}" >> "$data_file"
fi
done < $1