Files
ww/test/package/runtime/README.md
Hojun-Cho 90af21e132 test/package: wire the runtime fixture set into package_test
test/package/runtime/ was a manual README-driven corpus with no
target. Its unique surface — the driver's single-file ww test leg,
the unmet-expected-abort outcome, and the published -c binary's own
CLI (repeated globs, -list, -timeout-ms, direct-binary timeout and
descendant handling) — is now asserted by three new @test fns in
package_test.ww; the README drops its manual-run instructions.
2026-08-08 00:39:53 +09:00

1.1 KiB

Package-runtime fixtures

Single-file @test sources driven by test/package/package_test.ww (the make test-package binary): singlefile_runtime_outcomes, published_binary_cli, and direct_binary_timeout_and_descendants. They exercise the driver's single-file ww test leg and the published -c binary's own command surface (repeated globs, -list, -timeout-ms); the directory-package legs of the same outcome classes are owned by test/package/cases/*.

Fixture notes:

  • The runtime recognizes expectabort(); os.exit(nonzero) as an expected abort because WW's abort primitive itself terminates with a normal exit status; the ABI cannot distinguish those two paths without a future abort hook.
  • The lingering-descendant fixture blocks SIGTERM in its descendant, so the runner exercises its grace period and SIGKILL escalation before draining the record.
  • The escaped-descendant fixture moves its inherited pipe writer into another process group for one second; the framed nonblocking protocol must return after the test leader and owned group complete, never waiting for pipe EOF.