diff options
| author | salmonik <salmonik@tuta.io> | 2026-08-01 21:30:48 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-08-01 21:30:48 +0200 |
| commit | d9c47d52039be7a61d3e9d3652f73322fb6f47ba (patch) | |
| tree | 6e195f0819c97378ec5e0a3a049365d5e1f59ea5 /scripts/test-mouse.sh | |
| parent | rsnix v0.5.0: graphics layer + cursor compositor (diff) | |
| download | rs-dos-d9c47d52039be7a61d3e9d3652f73322fb6f47ba.tar.gz rs-dos-d9c47d52039be7a61d3e9d3652f73322fb6f47ba.zip | |
rsnix v0.5.1: force the GUI canvas to 800x600 via GOP SetMode
The kernel used to inherit whatever GOP mode the firmware picked
(QEMU/OVMF gave 1280x800). Now every surface derives from a fixed
800x600 canvas:
- uefi: typed EfiGopQueryMode/SetMode/GetMode fn pointers in
GraphicsOutputProtocol (were raw *mut c_void, never called).
- gop::select_gop_mode: scan the mode list for an exact 800x600
(32-bit BGR/RGB only, the driver assumes 4 Bpp), SetMode it; fall
back to the smallest mode that fits the canvas, then to the
firmware's choice. SetMode may move both the mode info pointer and
the framebuffer base, so both are re-read after the switch. Boot
log: 'gop: mode 3 selected — 800x600 (was 1280x800)'.
- tests: relative assertions are resolution-agnostic; test-gfx and
test-mouse had a boot-log race (shell line prints before the cursor
task line) — now wait for the cursor line instead of grepping once.
All four suites pass at 800x600. 0 build warnings.
Diffstat (limited to 'scripts/test-mouse.sh')
| -rwxr-xr-x | scripts/test-mouse.sh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/scripts/test-mouse.sh b/scripts/test-mouse.sh index e58d474..ea58f91 100755 --- a/scripts/test-mouse.sh +++ b/scripts/test-mouse.sh | |||
| @@ -95,7 +95,7 @@ echo $! >"$QPID" | |||
| 95 | 95 | ||
| 96 | wait_log "$LOG" "boot: entering shell" 90 || fail "kernel never reached the shell" | 96 | wait_log "$LOG" "boot: entering shell" 90 || fail "kernel never reached the shell" |
| 97 | grep -aq "ps2: mouse ready" "$LOG" || fail "mouse driver did not come up at boot" | 97 | grep -aq "ps2: mouse ready" "$LOG" || fail "mouse driver did not come up at boot" |
| 98 | grep -aq "cursor: task " "$LOG" || fail "cursor task did not spawn" | 98 | wait_log "$LOG" "cursor: task " 10 || fail "cursor task did not spawn" |
| 99 | 99 | ||
| 100 | echo "==> 4/6 cursor position tracks injected movement" | 100 | echo "==> 4/6 cursor position tracks injected movement" |
| 101 | INIT=$(cursor_state) | 101 | INIT=$(cursor_state) |
| @@ -153,7 +153,7 @@ qemu_hmp "sendkey ctrl-c" | |||
| 153 | grep -aq "mouse: routing events to task 3" "$LOG" || fail "mouse 3 did not arm routing" | 153 | grep -aq "mouse: routing events to task 3" "$LOG" || fail "mouse 3 did not arm routing" |
| 154 | grep -aq "msgrecv\[3\]: Mouse(+" "$LOG" || fail "task 3 queue did not receive the routed Mouse event" | 154 | grep -aq "msgrecv\[3\]: Mouse(+" "$LOG" || fail "task 3 queue did not receive the routed Mouse event" |
| 155 | # Watch line: x/y/buttons format (any occurrence after watching started). | 155 | # Watch line: x/y/buttons format (any occurrence after watching started). |
| 156 | grep -aq "mouse: x=$((X3 + 3)) y=$((Y3 + 2)) buttons=---" "$LOG" || fail "watch did not print the moved cursor (x=$((X3+3)) y=$((Y3+2)))" | 156 | grep -aq "mouse: x=$((X3 + 3)) y=$((Y3 + 2)) buttons=---" "$LOG" || fail "watch did not print the moved cursor (x=$((X3 + 3)) y=$((Y3 + 2)))" |
| 157 | grep -aq "mouse: stopped" "$LOG" || fail "^C did not stop the mouse watch" | 157 | grep -aq "mouse: stopped" "$LOG" || fail "^C did not stop the mouse watch" |
| 158 | 158 | ||
| 159 | python3 "$SCRIPT_DIR/sendkeys.py" --sock "$SOCK" "poweroff" | 159 | python3 "$SCRIPT_DIR/sendkeys.py" --sock "$SOCK" "poweroff" |
