11#! /bin/bash
2- # ARM64 stability test - ensures kernel stays stable after init_shell prompt.
2+ # ARM64 stability test - ensures kernel stays stable after shell prompt.
33#
44# This test boots to the userspace shell, then continues monitoring serial
55# output for aborts/exceptions for a short window (post-boot stability).
@@ -65,23 +65,24 @@ timeout "$QEMU_TIMEOUT_SECS" qemu-system-aarch64 \
6565 -display none -no-reboot \
6666 -device virtio-gpu-device \
6767 -device virtio-keyboard-device \
68+ -device virtio-tablet-device \
6869 -device virtio-blk-device,drive=ext2 \
6970 -drive if=none,id=ext2,format=raw,file=" $EXT2_WRITABLE " \
7071 -device virtio-net-device,netdev=net0 \
7172 -netdev user,id=net0 \
7273 -serial file:" $OUTPUT_DIR /serial.txt" &
7374QEMU_PID=$!
7475
75- # Wait for USERSPACE shell prompt (init_shell)
76- # ONLY accept "breenix>" - the actual userspace shell prompt
76+ # Wait for USERSPACE shell prompt (init_shell or bsh )
77+ # Accept "breenix>" (init_shell) or "bsh " (bsh shell) as valid userspace prompts
7778# DO NOT accept "Interactive Shell" - that's the KERNEL FALLBACK when userspace FAILS
7879BOOT_COMPLETE=false
7980PROMPT_LINE=0
8081for _ in $( seq 1 $(( WAIT_FOR_PROMPT_SECS / CHECK_INTERVAL_SECS)) ) ; do
8182 if [ -f " $OUTPUT_DIR /serial.txt" ]; then
82- if grep -q " breenix>" " $OUTPUT_DIR /serial.txt" 2> /dev/null; then
83+ if grep -qE " ( breenix>|bsh ) " " $OUTPUT_DIR /serial.txt" 2> /dev/null; then
8384 BOOT_COMPLETE=true
84- PROMPT_LINE=$( grep -n " breenix>" " $OUTPUT_DIR /serial.txt" | tail -1 | cut -d: -f1)
85+ PROMPT_LINE=$( grep -nE " ( breenix>|bsh ) " " $OUTPUT_DIR /serial.txt" | tail -1 | cut -d: -f1)
8586 break
8687 fi
8788 if grep -qiE " (KERNEL PANIC|panic!)" " $OUTPUT_DIR /serial.txt" 2> /dev/null; then
@@ -102,11 +103,11 @@ if ! $BOOT_COMPLETE; then
102103 exit 1
103104fi
104105
105- # Verify init_shell appears at least once
106- SHELL_COUNT=$( grep -o " init_shell" " $OUTPUT_DIR /serial.txt" 2> /dev/null | wc -l | tr -d ' ' )
106+ # Verify shell ( init_shell or bsh) appears at least once
107+ SHELL_COUNT=$( grep -oE " ( init_shell|bsh) " " $OUTPUT_DIR /serial.txt" 2> /dev/null | wc -l | tr -d ' ' )
107108SHELL_COUNT=${SHELL_COUNT:- 0}
108109if [ " $SHELL_COUNT " -lt 1 ]; then
109- echo " FAIL: init_shell marker not found after prompt"
110+ echo " FAIL: shell marker (init_shell or bsh) not found after prompt"
110111 tail -10 " $OUTPUT_DIR /serial.txt" 2> /dev/null || true
111112 exit 1
112113fi
0 commit comments