nx_test_driver_e2e.nx
buildroot/runtime/nx_test_driver_e2e.nx
about
nx_test_driver_e2e.nx -- end-to-end smoke for the bits-up test driver.
Composes all 5 primitives (nx_dom_query + nx_dom_click + nx_url_params
+ nx_test_harness + nx_game_harness) against an inline "fake game" that
emits the same HTML shape as nx_tictactoe_render.nx.
Why a fake game instead of importing nx_tictactoe.nx directly: the real
game's render imports nx_syscalls.nx (RV64); the harness imports
nx_syscalls_x86_64.nx; combining them creates duplicate-symbol errors.
Cross-arch cleanup of the substrate's syscall layer is the queued
follow-up; this smoke validates the *primitives* end-to-end and
produces the same test-output format the .mjs harnesses do, proving the
architecture works.
The fake game models a 3x3 grid like tic-tac-toe. State is 9 cells +
last-move indicator. Render emits buttons with class="cell" and
data-cell-idx="N". Action 1 with arg0=N places an X at cell N.
dependencies 5 imports · 0 importers
imports: nx_test_harness.nxnx_game_harness.nxnx_dom_query.nxnx_dom_click.nxnx_url_params.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 23 | const K_MAGIC_65536: i64 = 65536 |
| 25 | const _FAKE_RENDER_FD: i64 = 99 |
functions
| 30 | func _fake_w(s: *u8) -> i64 |
| 36 | func _fake_wi(n: i64) -> i64 |
| 49 | func fake_render() -> i64 |
| 78 | func fake_action(action: i64, arg0: i64) -> i64 called by 1: main |
| 89 | func main() -> i64 |