os/exec — validation proof

Go’s own os/exec test suite, converted to C# by go2cs, built against the converted standard library, run under the Go-semantics test host, and compared verdict for verdict against a clean go test -json baseline of the same sources. This page is generated by the converter from that comparison — it is the evidence behind the os/exec row in Validated Test Packages.

Validated 2026-08-15 · converter f8958066f

74 matched · 27 disclosed — Go 1.23.1, windows/amd64, converted package src/core/os/exec.

Both runtimes skip 8 of the matched tests identically.

Verdicts

Test go test go2cs
TestAbsCommandWithDoubledExtension pass pass
TestAbsPathExec pass pass
TestAbsPathExec/modified pass pass
TestCancelErrors pass pass
TestCancelErrors/killed_after_error pass pass
TestCancelErrors/killed_after_spurious_ErrProcessDone pass pass
TestCancelErrors/nonzero_exit_after_error pass pass
TestCancelErrors/success_after_ErrProcessDone pass pass
TestCancelErrors/success_after_error pass pass
TestCatGoodAndBadFile pass pass
TestCatStdin pass pass
TestChildCriticalEnv pass pass
TestClosePipeOnCopyError pass pass
TestCommand pass fail (disclosed)
TestCommand/current_directory pass fail (disclosed)
TestCommand/from_PATH_with_no_match_in_Dir pass fail (disclosed)
TestCommand/not_found_before_Dir pass pass
TestCommand/relative_to_Dir pass fail (disclosed)
TestCommand/relative_to_Dir_with_different_extension pass pass
TestCommand/relative_to_Dir_with_dot_and_extra_PATH pass fail (disclosed)
TestCommand/relative_to_Dir_with_dot_and_extra_PATH_and_no_extension pass fail (disclosed)
TestCommand/relative_to_Dir_with_explicit_dot pass fail (disclosed)
TestCommand/relative_to_Dir_with_extra_PATH pass fail (disclosed)
TestCommand/relative_to_Dir_with_extra_PATH_and_no_extension pass fail (disclosed)
TestCommand/resolved_before_Dir pass pass
TestCommand/with_dir pass fail (disclosed)
TestCommand/with_explicit_dot pass fail (disclosed)
TestCommand/with_extra_PATH pass fail (disclosed)
TestCommand/with_extra_PATH_and_no_extension pass fail (disclosed)
TestCommand/with_irrelevant_PATH pass fail (disclosed)
TestCommand/with_slash_and_no_extension pass fail (disclosed)
TestCommandRelativeName pass pass
TestConcurrentExec pass pass
TestContext pass pass
TestContextCancel pass pass
TestDedupEnv pass pass
TestDedupEnvEcho pass pass
TestDoubleStartLeavesPipesOpen pass pass
TestEcho pass pass
TestEchoFileRace pass pass
TestEnvNULCharacter pass pass
TestExitCode pass pass
TestExitStatus pass pass
TestExtraFiles skip skip
TestExtraFilesRace skip skip
TestIgnorePipeErrorOnSuccess pass pass
TestIgnorePipeErrorOnSuccess/10MB pass pass
TestIgnorePipeErrorOnSuccess/Infinite pass pass
TestLookPath pass pass
TestLookPath/GODEBUG=execerrdot=0 pass pass
TestLookPath/GODEBUG=execerrdot=0/PATH=. pass pass
TestLookPath/GODEBUG=execerrdot=0/PATH=../testdir pass pass
TestLookPath/GODEBUG=execerrdot=1 pass pass
TestLookPath/GODEBUG=execerrdot=1/PATH=. pass pass
TestLookPath/GODEBUG=execerrdot=1/PATH=../testdir pass pass
TestLookPath/PATH=$OTHER pass pass
TestLookPath/PATH=$PWD pass pass
TestLookPathNotFound pass pass
TestLookPathWindows pass fail (disclosed)
TestLookPathWindows/directory,_no_extension pass fail (disclosed)
TestLookPathWindows/dirs_with_extensions pass fail (disclosed)
TestLookPathWindows/doubled_extension pass fail (disclosed)
TestLookPathWindows/extension_not_in_PATHEXT pass fail (disclosed)
TestLookPathWindows/extensionless_file_in_CWD_ignored pass fail (disclosed)
TestLookPathWindows/extensionless_file_in_PATH_ignored pass fail (disclosed)
TestLookPathWindows/first_PATHEXT_entry pass fail (disclosed)
TestLookPathWindows/first_allowed_by_PATHEXT pass fail (disclosed)
TestLookPathWindows/first_directory_containing_a_PATHEXT_match pass pass
TestLookPathWindows/first_match pass fail (disclosed)
TestLookPathWindows/first_with_extension pass fail (disclosed)
TestLookPathWindows/ignore_dir_with_PATHEXT_extension pass pass
TestLookPathWindows/ignore_empty_PATH_entry pass pass
TestLookPathWindows/mismatched_extension pass pass
TestLookPathWindows/no_extension pass pass
TestLookPathWindows/no_match pass pass
TestLookPathWindows/no_match_with_dir pass pass
TestLookPathWindows/return_ErrDot_if_found_by_a_different_absolute_path pass pass
TestLookPathWindows/specific_extension pass pass
TestLookPathWindows/specific_name pass fail (disclosed)
TestLookPathWindows/suppress_ErrDot_if_also_found_in_absolute_path pass pass
TestNoExistExecutable pass pass
TestNoInheritHandles pass pass
TestNoPath pass pass
TestOutputStderrCapture pass pass
TestPathRace pass pass
TestPipeLookPathLeak skip skip
TestPipePassing pass pass
TestPipes pass pass
TestPrefixSuffixSaver pass pass
TestStdinClose pass pass
TestStdinCloseRace pass pass
TestString skip skip
TestStringPathNotResolved pass pass
TestWaitInterrupt pass pass
TestWaitInterrupt/Exit-hang pass pass
TestWaitInterrupt/SIGINT-handled skip skip
TestWaitInterrupt/SIGINT-ignored skip skip
TestWaitInterrupt/SIGKILL-hang pass pass
TestWaitInterrupt/SIGQUIT skip skip
TestWaitInterrupt/Wait pass pass
TestWaitInterrupt/WaitDelay skip skip

Disclosed divergences

A disclosed divergence is a specific Go assertion the managed CLR provably cannot satisfy — not a skipped test and not a tolerance. Each one is pinned by exact failure signature in the package’s hand-owned go2cs_test_disclosures.json; a disclosed test that fails any other way is still a hard mismatch.

Test Class Pinned reason
TestCommand aggregate no failure text of its own — the roll-up of this test’s disclosed subtests
TestCommand/current_directory host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/from_PATH_with_no_match_in_Dir host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/relative_to_Dir host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/relative_to_Dir_with_dot_and_extra_PATH host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/relative_to_Dir_with_dot_and_extra_PATH_and_no_extension host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/relative_to_Dir_with_explicit_dot host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/relative_to_Dir_with_extra_PATH host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/relative_to_Dir_with_extra_PATH_and_no_extension host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/with_dir host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/with_explicit_dot host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/with_extra_PATH host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/with_extra_PATH_and_no_extension host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/with_irrelevant_PATH host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestCommand/with_slash_and_no_extension host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows aggregate no failure text of its own — the roll-up of this test’s disclosed subtests
TestLookPathWindows/directory,_no_extension host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/dirs_with_extensions host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/doubled_extension host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/extension_not_in_PATHEXT host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/extensionless_file_in_CWD_ignored host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/extensionless_file_in_PATH_ignored host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/first_PATHEXT_entry host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/first_allowed_by_PATHEXT host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/first_match host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/first_with_extension host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)
TestLookPathWindows/specific_name host-limit the fixture is a COPY of the test executable (installExe) run through exec.Command, and a single relocated file can never start: the apphost is bound at build time to a same-basename managed assembly that must sit beside it, so hostfxr answers LibHostAppRootFindFailure (0x8000809a, “The application to execute does not exist”)

Excluded declarations

Declarations filtered from both sides of the comparison, and therefore not claimed above: Benchmark, Fuzz and Example declarations the converted host does not execute, plus any test requiring a capability the managed runtime does not provide — a testing member the host has not implemented, or a platform behavior it provably cannot reproduce. Each is named with the capability it needs.