code wiki / (root) / nx_ttt_bits_up_e2e.nx

nx_ttt_bits_up_e2e.nx

buildroot/runtime/nx_ttt_bits_up_e2e.nx

4867 B106 linesdepth 5pulls 10 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_ttt_bits_up_e2e.nx -- REAL bits-up end-to-end test driving the actual nx_tictactoe game through the 5 bits-up test driver primitives. Equivalent to nishi-pages/scripts/_bits_up_check.mjs but 100% NishiLang. What this proves: the .mjs Playwright harness can be retired in favor of bits-up substrate. No JS, no Playwright, no browser engine -- the game's actual state machine + AI + render are driven through the same click-dispatch lifecycle the browser uses, with HTML emitted via fd 99 captured into a buffer, queried by the DOM primitives, asserted by the test harness DSL.

dependencies 6 imports · 0 importers

nx_test_harness.nx nx_game_harness.nx nx_dom_query.nx nx_dom_click.nx nx_tictactoe.nx nx_tictactoe_render.nx nx_ttt_bits_up_e2e.nx

imports: nx_test_harness.nxnx_game_harness.nxnx_dom_query.nxnx_dom_click.nxnx_tictactoe.nxnx_tictactoe_render.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main nx_test_init nx_ttt_init nx_ttt_new sys_mmap nx_capture_start sys_mmap ↻ _gh_openat_rdwr sys_dup3 nx_ttt_render _ttt_w sys_write _ttt_strlen _ttt_emit_version_banner _ttt_w ↻ _ttt_emit_status _ttt_w ↻ nx_ttt_outcome nx_ttt_winner nx_ttt_turn _ttt_emit_cell nx_ttt_cell nx_ttt_outcome ↻ _ttt_w ↻ _ttt_wd sys_mmap ↻ sys_write ↻ _ttt_emit_controls _ttt_w ↻ _ttt_emit_opt _ttt_w ↻ nx_capture_end sys_close sys_lseek sys_read nx_test_expect_eq _th_w _th_strlen _th_wln _th_w ↻

structs

none

consts

18const K_MAGIC_65536: i64 = 65536

functions

20func _ttt_e2e_strlen(s: *u8) -> i64
26func main() -> i64