diff --git a/justfile b/justfile index 8b63139..b38c8f4 100644 --- a/justfile +++ b/justfile @@ -49,12 +49,27 @@ wovm-test: # the language track's acceptance test: docs/examples/log-watcher must compile # with zero diagnostics AND run — watch alerts on an error line, run schedules -# a cron.d entry, and the MCP server answers JSON-RPC (initialize, tools/list, -# 401 without a token). This is the test the whole track exists to pass; the -# corpus below gates the individual behaviors underneath it. +# a cron.d entry, the MCP server answers JSON-RPC (initialize, tools/list, +# 401 without a token), and SIGTERM stops a server parked in accept. This is +# the test the whole track exists to pass; the corpus below gates the +# individual behaviors underneath it. log-watcher: ./scripts/log-watcher-accept.sh +# the same script's opt-in soak: each mode under load for DURATION seconds, +# resident memory and descriptor count compared against a warmed baseline +# (256 KiB / zero-fd tolerance) — the check that catches what a seconds-long +# run cannot. `just log-watcher-soak 60` for a longer sit. +log-watcher-soak DURATION="30": + LW_SOAK={{DURATION}} ./scripts/log-watcher-accept.sh + +# build the sample the way a user would: `woc ` reads wo.toml and +# produces docs/examples/log-watcher/target/log-watcher (self-contained, +# needs woc-build + wovm-build once) +log-watcher-build: + ./compiler/_build/default/bin/woc docs/examples/log-watcher + @ls -la docs/examples/log-watcher/target/log-watcher + # conformance harness (plan 3): walks tests/corpus/{run,compile-fail,trap}, # exact outcome per fixture kind — see docs/plan/oop-vm/02-corpus.md. # Fails loudly (and names the recipe to run) if woc or wovm isn't built.