Correctly exit Stdlib tests on failure (#1888)

Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
This commit is contained in:
Takeshi Yoneda
2023-12-21 11:08:17 -08:00
committed by GitHub
parent 866d555874
commit 68729c0a8e

View File

@@ -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))
}
}