#!/usr/bin/env bash set -euo pipefail [[ $# -eq 2 ]] || { echo "usage: test-native-bios-image.sh " >&2 exit 64 } image=$(readlink -f "$1") receipt=$(readlink -m "$2") serial_log=$(mktemp) set +e timeout 20 qemu-system-x86_64 \ -machine pc,accel=tcg \ -m 64M \ -drive "format=raw,file=${image}" \ -display none \ -monitor none \ -serial "file:${serial_log}" \ -device isa-debug-exit,iobase=0xf4,iosize=0x04 \ -no-reboot qemu_status=$? set -e [[ ${qemu_status} -eq 33 ]] for evidence in \ GHOS_BOOT_STAGE0=BIOS \ GHOS_NATIVE_KERNEL_ENTERED=true \ GHOS_CPU_MODE=LONG64 \ GHOS_WORLD_ID=GLW-ROOT-0001 \ GHOS_DOMAIN_COUNT=5 \ GHOS_DOMAIN_5=DOMAIN-FIFTH \ GHOS_BROADCAST_TOWER=BT-GH-ROOT-0001 \ GHOS_AUTHORITY_LANGUAGE=HLDP \ GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION \ GHOS_PERSONA_STATE=EXISTS \ GHOS_LINUX_PRESENT=false \ GHOS_NATIVE_ACCEPTANCE=QEMU_ONLY; do grep -q "^${evidence}" "${serial_log}" done observed_at=$(date --iso-8601=seconds) image_sha=$(sha256sum "${image}" | awk '{print $1}') cat >"${receipt}" <>"${receipt}.serial.log"