/* * 999_random_run — execute the lib/math/random @test fixture * under the C-side `ww run` driver and assert exit 0. * * Placed at 999 (past the 980-989 stdlib-run sub-band) because * random number generation exercises many narrow-int cgen paths; * keeping it numbered at the tail makes its position in the test * list visually distinct from the small-utility cluster. Sibling * to 980_memio_run / 998_bufio_run. random_test.ww carries its * own `export fn main()` that drives the @test fns and signals * which case failed via the exit code, so this file is just a * thin wrapper — no @test scanning, no synthetic main generation. */ #include #include #include #include static int runwait(const char *cmd) { int rc = system(cmd); if (rc == -1) return -1; if (WIFEXITED(rc)) return WEXITSTATUS(rc); return 1; } int main(void) { const char *bin = getenv("BIN"); if (!bin) bin = "out/bin"; char absbin[1024]; if (bin[0] != '/') { char cwd[1024]; if (getcwd(cwd, sizeof cwd) == NULL) return 1; snprintf(absbin, sizeof absbin, "%s/%s", cwd, bin); bin = absbin; } char cwd[1024]; if (getcwd(cwd, sizeof cwd) == NULL) return 1; const char *src = "lib/math/random/random_test.ww"; char path[1024], cmd[2048]; snprintf(path, sizeof path, "%s/%s", cwd, src); snprintf(cmd, sizeof cmd, "%s/ww test %s", bin, path); int rc = runwait(cmd); if (rc != 0) { fprintf(stderr, "random_run FAIL: %s exited %d\n", src, rc); return 1; } printf("random_run: %s ok\n", src); return 0; }