code wiki / _hdl_build / _wb_oven_test.nx

_wb_oven_test.nx source

↩ module page · 22 lines · 710 B

1// AUTHORED BY THE NISHI BUILDER (pattern: PID_LOOP test) -- plant-sim replay KAT, endpoint baked at emit time 2import "_wb_oven.nx" 3import "nx_syscalls.nx" 4func main() -> i64 { 5 var bad: i64 = 0 6 let ig: *i64 = sys_mmap(16) as *i64 7 ig[0] = 0 8 var x: i64 = 0 9 var s: i64 = 0 10 while s < 60 { x = x + _wb_oven_pid(1000 - x, ig) / 8; s = s + 1 } 11 if x != 1027 { bad = bad + 1 } 12 var dev: i64 = 1000 - x 13 if dev < 0 { dev = 0 - dev } 14 if dev > 50 { bad = bad + 1 } 15 let ig2: *i64 = sys_mmap(16) as *i64 16 ig2[0] = 0 17 if _wb_oven_pid(20000, ig2) != 40200 { bad = bad + 1 } 18 if ig2[0] != 10000 { bad = bad + 1 } 19 if bad == 0 { sys_exit(0) } 20 sys_exit(1) 21 return 1 22}