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.
24 lines
1.1 KiB
Markdown
24 lines
1.1 KiB
Markdown
# 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.
|