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) { readTestCase: func(fpath string, fname string) (_ []byte, c wazero.ModuleConfig, stdout, stderr *os.File, err error) {
bin, err := os.ReadFile(fpath) bin, err := os.ReadFile(fpath)
c, stdout, stderr = defaultModuleConfig() c, stdout, stderr = defaultModuleConfig()
c.WithFSConfig(wazero.NewFSConfig().WithDirMount(".", "/")). c = c.WithFSConfig(wazero.NewFSConfig().WithDirMount(".", "/")).
WithArgs("test.wasm") WithArgs("test.wasm")
return bin, c, stdout, stderr, err return bin, c, stdout, stderr, err
}, },
@@ -87,7 +87,7 @@ var (
WithDirMount(os.TempDir(), "/tmp") WithDirMount(os.TempDir(), "/tmp")
c, stdout, stderr = defaultModuleConfig() c, stdout, stderr = defaultModuleConfig()
c.WithFSConfig(fsconfig). c = c.WithFSConfig(fsconfig).
WithArgs(fname, "-test.v") WithArgs(fname, "-test.v")
return bin, c, stdout, stderr, err return bin, c, stdout, stderr, err
@@ -113,7 +113,7 @@ var (
normalizedTestdir := normalizeOsPath(testdir) normalizedTestdir := normalizeOsPath(testdir)
c, stdout, stderr = defaultModuleConfig() c, stdout, stderr = defaultModuleConfig()
c.WithFSConfig( c = c.WithFSConfig(
wazero.NewFSConfig(). wazero.NewFSConfig().
WithDirMount(sysroot, "/"). WithDirMount(sysroot, "/").
WithDirMount(os.TempDir(), "/tmp")). WithDirMount(os.TempDir(), "/tmp")).
@@ -223,11 +223,13 @@ func requireZeroExitCode(b *testing.B, err error, stdout, stderr *os.File) {
b.Helper() b.Helper()
if se, ok := err.(*sys.ExitError); ok { if se, ok := err.(*sys.ExitError); ok {
if se.ExitCode() != 0 { // Don't err on success. if se.ExitCode() != 0 { // Don't err on success.
stdoutBytes, err := io.ReadAll(stdout) stdoutBytes, _ := io.ReadAll(stdout)
require.NoError(b, err) stderrBytes, _ := io.ReadAll(stderr)
stderrBytes, err := io.ReadAll(stderr) require.NoError(b, err, "stdout: %s\nstderr: %s", string(stdoutBytes), string(stderrBytes))
require.NoError(b, err) }
} else if err != nil {
stdoutBytes, _ := io.ReadAll(stdout)
stderrBytes, _ := io.ReadAll(stderr)
require.NoError(b, err, "stdout: %s\nstderr: %s", string(stdoutBytes), string(stderrBytes)) require.NoError(b, err, "stdout: %s\nstderr: %s", string(stdoutBytes), string(stderrBytes))
} }
} }
}