- 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
33 lines
1010 B
Rust
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);
|
|
}
|