tianole/scripts/check.sh

52 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
sources=$(find arch include kernel -name '*.c' -o -name '*.h')
clang-format --dry-run --Werror $sources
make clean
make
timeout 30s make run-headless || true
required_lines=(
"Tianole x86 bootloader loaded."
"jumping to kernel entry"
"kernel_main entered"
"boot_info.version ok"
"boot services exited"
"memory map descriptors="
"conventional memory pages="
)
for line in "${required_lines[@]}"; do
if ! grep -F "$line" build/debug.log >/dev/null; then
echo "missing expected boot log line: $line" >&2
echo "--- build/debug.log ---" >&2
cat build/debug.log >&2 || true
exit 1
fi
done
serial_required_lines=(
"kernel_main entered"
"boot_info.version ok"
"boot services exited"
"memory map descriptors="
"conventional memory pages="
)
for line in "${serial_required_lines[@]}"; do
if ! grep -F "$line" build/serial.log >/dev/null; then
echo "missing expected serial log line: $line" >&2
echo "--- build/serial.log ---" >&2
cat build/serial.log >&2 || true
exit 1
fi
done
cat build/debug.log