Files
2026-09-21 22:29:23 +08:00

34 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
source "$(dirname -- "${BASH_SOURCE[0]}")/../../tools/lib.sh"
cd "$FDS_ROOT"
use_xbps
[[ -f out/rootfs-cli.tar ]] || die 'Run make rootfs PROFILE=cli first'
if ! xbps-query -r "$FDS_VOID/masterdir-x86_64" qemu-system-aarch64 >/dev/null 2>&1; then
tools/in-void xbps-install -y qemu-system-aarch64
fi
tools/prepare-vm
work=$(mktemp -d "$FDS_ROOT/out/m2-vm.XXXXXX")
python3 tools/make-vm-image "$work"
sha256sum config/vm-test.conf tools/prepare-vm tools/make-vm-image tools/run-vm \
tests/integration/m2-checks tests/integration/m2-guest >"$work/test-inputs.sha256"
sha256sum "$work/rootfs.ext4" >"$work/disk-before.sha256"
{
cat config/vm-test.conf
printf '\n'
tools/in-void qemu-system-aarch64 --version
mkfs.ext4 -V 2>&1
} >"$work/test-environment.txt"
printf 'ARM boot test artifacts: %s\n' "$work"
timeout --foreground 180 tools/run-vm "$work" 2>&1 | tee "$work/serial.log"
! grep -q 'FDS_M2_FAIL\|Kernel panic' "$work/serial.log" || die 'ARM guest reported a failure'
for marker in FDS_M2_PID1 FDS_M2_FILESYSTEM FDS_M2_BOOT FDS_M2_SERVICE FDS_M2_PASS; do
grep -q "$marker" "$work/serial.log" || die "Missing guest evidence: $marker"
done
grep -q 'Power down' "$work/serial.log" || die 'Guest did not complete orderly power-off'
sha256sum -c "$work/disk-before.sha256"
sha256sum out/rootfs-cli.tar "$work/test-rootfs.tar" "$work/rootfs.ext4" \
out/vm-kernel/boot/vmlinux-* >"$work/artifacts.sha256"
ln -sfn "${work##*/}" out/m2-vm-latest
printf 'PASS: M2 ARM boot, native s6 PID 1, service control, and orderly power-off\n'
printf 'SKIP: physical Pi boot and Dasung display recovery require M4/hardware\n'