34 lines
1.6 KiB
Bash
Executable File
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'
|