diff options
author | Ben Smith <binjimin@gmail.com> | 2019-02-01 16:49:17 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-01 16:49:17 -0800 |
commit | d8fc8e1fbba8b6ba73eb52caea90290525e853c1 (patch) | |
tree | 82b3ff1018747688b2d8bec5fd0c787ea7faed8d /src | |
parent | 75ffe6cd45e3fedd950f24ba15333dbc69e5a5da (diff) | |
download | wabt-d8fc8e1fbba8b6ba73eb52caea90290525e853c1.tar.gz wabt-d8fc8e1fbba8b6ba73eb52caea90290525e853c1.tar.bz2 wabt-d8fc8e1fbba8b6ba73eb52caea90290525e853c1.zip |
Return failed tests count from spectest-interp (#1003)
`spectest-interp` used to return 0 (success) when tests failed, and
non-zero only if the source could not be parsed. It's more useful to
return non-zero if the tests fail too.
Fixes issue #1002.
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/spectest-interp.cc | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/tools/spectest-interp.cc b/src/tools/spectest-interp.cc index 928a6110..643c10f2 100644 --- a/src/tools/spectest-interp.cc +++ b/src/tools/spectest-interp.cc @@ -1331,18 +1331,25 @@ void CommandRunner::TallyCommand(wabt::Result result) { total_++; } -static wabt::Result ReadAndRunSpecJSON(string_view spec_json_filename) { +static int ReadAndRunSpecJSON(string_view spec_json_filename) { JSONParser parser; - CHECK_RESULT(parser.ReadFile(spec_json_filename)); + if (parser.ReadFile(spec_json_filename) == wabt::Result::Error) { + return 1; + } Script script; - CHECK_RESULT(parser.ParseScript(&script)); + if (parser.ParseScript(&script) == wabt::Result::Error) { + return 1; + } CommandRunner runner; - wabt::Result result = runner.Run(script); + if (runner.Run(script) == wabt::Result::Error) { + return 1; + } printf("%d/%d tests passed.\n", runner.passed(), runner.total()); - return result; + const int failed = runner.total() - runner.passed(); + return failed; } } // namespace spectest @@ -1352,10 +1359,7 @@ int ProgramMain(int argc, char** argv) { s_stdout_stream = FileStream::CreateStdout(); ParseOptions(argc, argv); - - wabt::Result result; - result = spectest::ReadAndRunSpecJSON(s_infile); - return result != wabt::Result::Ok; + return spectest::ReadAndRunSpecJSON(s_infile); } int main(int argc, char** argv) { |