From 68729c0a8e2e2dfd8f9f8eec98f353709b96866c Mon Sep 17 00:00:00 2001 From: Takeshi Yoneda Date: Thu, 21 Dec 2023 11:08:17 -0800 Subject: [PATCH] Correctly exit Stdlib tests on failure (#1888) Signed-off-by: Takeshi Yoneda --- internal/integration_test/stdlibs/bench_test.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/internal/integration_test/stdlibs/bench_test.go b/internal/integration_test/stdlibs/bench_test.go index 4064fcec..25956e34 100644 --- a/internal/integration_test/stdlibs/bench_test.go +++ b/internal/integration_test/stdlibs/bench_test.go @@ -68,7 +68,7 @@ var ( readTestCase: func(fpath string, fname string) (_ []byte, c wazero.ModuleConfig, stdout, stderr *os.File, err error) { bin, err := os.ReadFile(fpath) c, stdout, stderr = defaultModuleConfig() - c.WithFSConfig(wazero.NewFSConfig().WithDirMount(".", "/")). + c = c.WithFSConfig(wazero.NewFSConfig().WithDirMount(".", "/")). WithArgs("test.wasm") return bin, c, stdout, stderr, err }, @@ -87,7 +87,7 @@ var ( WithDirMount(os.TempDir(), "/tmp") c, stdout, stderr = defaultModuleConfig() - c.WithFSConfig(fsconfig). + c = c.WithFSConfig(fsconfig). WithArgs(fname, "-test.v") return bin, c, stdout, stderr, err @@ -113,7 +113,7 @@ var ( normalizedTestdir := normalizeOsPath(testdir) c, stdout, stderr = defaultModuleConfig() - c.WithFSConfig( + c = c.WithFSConfig( wazero.NewFSConfig(). WithDirMount(sysroot, "/"). WithDirMount(os.TempDir(), "/tmp")). @@ -223,11 +223,13 @@ func requireZeroExitCode(b *testing.B, err error, stdout, stderr *os.File) { b.Helper() if se, ok := err.(*sys.ExitError); ok { if se.ExitCode() != 0 { // Don't err on success. - stdoutBytes, err := io.ReadAll(stdout) - require.NoError(b, err) - stderrBytes, err := io.ReadAll(stderr) - require.NoError(b, err) + stdoutBytes, _ := io.ReadAll(stdout) + stderrBytes, _ := io.ReadAll(stderr) require.NoError(b, err, "stdout: %s\nstderr: %s", string(stdoutBytes), string(stderrBytes)) } + } else if err != nil { + stdoutBytes, _ := io.ReadAll(stdout) + stderrBytes, _ := io.ReadAll(stderr) + require.NoError(b, err, "stdout: %s\nstderr: %s", string(stdoutBytes), string(stderrBytes)) } }