ww test: preserve combined product output order
Go 1.26.5 maps each test binary's stdout and stderr to the same product writer. Teach the captured executor to share one open file description for byte-equal output paths, then make directory test products emit that one ordered capture on coordinator stdout. Build captures and inherited-stdio routes remain unchanged.\n\nKeep the executor mechanism, package policy, native Cstage/WWstage proof, and normative contract together so every commit preserves the observable test-output behavior.
This commit is contained in:
14
docs/spec.md
14
docs/spec.md
@@ -665,6 +665,16 @@ listing, no-match execution, failure, and timeout all retain that boundary.
|
||||
Standard input is runtime process metadata and contributes no package, action,
|
||||
artifact, or persistence identity.
|
||||
|
||||
The product's standard output and standard error refer to one product-local
|
||||
capture. Bytes from either descriptor retain the order in which their writes
|
||||
reach that shared open output, and the coordinator emits the completed capture
|
||||
on its standard output. A runtime failure or child-setup failure appends the
|
||||
product status diagnostic to standard output as well. Loader, source,
|
||||
compiler, assembler, linker, and other build failures retain their diagnostic
|
||||
standard-error channel; build-action stdout and stderr remain separate.
|
||||
Parallel products own independent captures and are still emitted in canonical
|
||||
product order.
|
||||
|
||||
The coordinator does not change its own cwd or environment. Parallel products
|
||||
receive independent child environments and each uses its own source directory.
|
||||
Relative ordinary files, `testdata`, and writes resolve there for every
|
||||
@@ -672,8 +682,8 @@ executing filter or list path. `ww build`, directory `ww test -c` (including
|
||||
`-c -o`), and a no-selected-test directory execute no test child and receive no
|
||||
execution-directory effect. A published test binary invoked directly, and the
|
||||
raw single-file compatibility route, inherit the user's invocation cwd,
|
||||
environment, and standard input; no package directory or input policy is
|
||||
embedded or forced by the binary.
|
||||
environment, and three standard descriptors; no package directory, input, or
|
||||
output policy is embedded or forced by the binary.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user