test: accept empty skip reasons

This commit is contained in:
2026-08-22 12:59:08 +09:00
parent 78c9eee82d
commit 91fce80b37
5 changed files with 610 additions and 2 deletions

View File

@@ -235,6 +235,21 @@ work never caches a test result. A directly invoked retained binary exposes the
warning on stderr and accounting on stdout because no coordinator combines its
descriptors or emits a package result.
The shared language runtime accepts `test.skip("")` as a successful skip. Its
zero-length reason is a structurally valid skipped control result, so a normal
zero child exit produces the existing `qualified.name ... SKIP: ` line followed
immediately by newline, increments skipped accounting, and contributes neither
a failure nor a harness error. Later selected tests continue. This one runtime
classification covers raw single-file, same-package, external-test, and honest
test-only descriptors, an active-test call reached through production package
code, filtered execution, coordinator-run retained binaries, and later direct
retained-binary execution. Production files still define no test-body
descriptor. Nonempty skips are unchanged; an oversized reason is still an
invalid harness result, and skip outside an active test still aborts. List mode
still executes no body. This rule does not merge per-test children or change
package/import initialization, product scheduling, timeout and process-group
ownership, publication, persistence, or cleanup.
Directory test binaries are always linked under the coordinator's temporary
product root. The retained-output option has the exact registered name `o` and
accepts `-o VALUE`, `--o VALUE`, `-o=VALUE`, and `--o=VALUE`. An equals form