Files
k-os/crates/apps/snake/src/tests/renderer.rs
Gabriel Kaszewski e931485ca7 fix: sched round-robin, cap slot OOB panic, clippy, make ci
- RunList -> intrusive FIFO, no starvation, no silent drop
- cap table sized to CapSlot range (kani caught OOB panic)
- snake food color test uses const
- kani cfg lint, RUST_MIN_STACK for big kernel struct in tests
2026-10-26 19:08:30 +01:00

33 lines
1010 B
Rust

use crate::game::Snake;
use crate::renderer::{render, RenderCommand};
#[test]
fn render_produces_commands() {
let snake = Snake::new();
let mut commands = [RenderCommand { x: 0, y: 0, w: 0, h: 0, color: 0 }; 64];
let count = render(&snake, &mut commands);
// background + border + food + 3 body segments = 6
assert!(count >= 6);
}
#[test]
fn first_command_is_background() {
let snake = Snake::new();
let mut commands = [RenderCommand { x: 0, y: 0, w: 0, h: 0, color: 0 }; 64];
render(&snake, &mut commands);
assert_eq!(commands[0].x, 0);
assert_eq!(commands[0].y, 0);
assert!(commands[0].w > 0);
assert!(commands[0].h > 0);
}
#[test]
fn food_is_rendered() {
let snake = Snake::new();
let mut commands = [RenderCommand { x: 0, y: 0, w: 0, h: 0, color: 0 }; 64];
let count = render(&snake, &mut commands);
// Food is command index 2 (after bg and border)
assert!(count > 2);
assert_eq!(commands[2].color, crate::renderer::FOOD_COLOR);
}