diff options
author | Ben Smith <binjimin@gmail.com> | 2017-09-04 10:42:33 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-04 10:42:33 -0700 |
commit | 8a25289451c262d7c5d791c087b9052220b149ac (patch) | |
tree | 0ee1a28ca395a0d8a1dcb439fb76233547e0e56a /src/tools/wasm-interp.cc | |
parent | 19483e5c93571d4288122adf7f5350e5425ae393 (diff) | |
download | wabt-8a25289451c262d7c5d791c087b9052220b149ac.tar.gz wabt-8a25289451c262d7c5d791c087b9052220b149ac.tar.bz2 wabt-8a25289451c262d7c5d791c087b9052220b149ac.zip |
Update testsuite (#609)
* Mostly just updating test expectations
* Function signatures need to be checked as part of parsing (see
assert_malformed test in `testsuite/func.wast`; added
`ValidateFuncSignatures` for this.
Diffstat (limited to 'src/tools/wasm-interp.cc')
-rw-r--r-- | src/tools/wasm-interp.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/tools/wasm-interp.cc b/src/tools/wasm-interp.cc index 0a2a6f2d..be78e721 100644 --- a/src/tools/wasm-interp.cc +++ b/src/tools/wasm-interp.cc @@ -31,7 +31,9 @@ #include "src/interpreter.h" #include "src/literal.h" #include "src/option-parser.h" +#include "src/resolve-names.h" #include "src/stream.h" +#include "src/validator.h" #include "src/wast-lexer.h" #include "src/wast-parser.h" @@ -1013,7 +1015,16 @@ wabt::Result SpecJSONParser::ReadInvalidTextModule( std::unique_ptr<WastLexer> lexer = WastLexer::CreateFileLexer(module_filename); std::unique_ptr<Script> script; - return ParseWast(lexer.get(), &script, error_handler); + wabt::Result result = ParseWast(lexer.get(), &script, error_handler); + if (Succeeded(result)) { + wabt::Module* module = script->GetFirstModule(); + result = ResolveNamesModule(lexer.get(), module, error_handler); + if (Succeeded(result)) { + // Don't do a full validation, just validate the function signatures. + result = ValidateFuncSignatures(lexer.get(), module, error_handler); + } + } + return result; } wabt::Result SpecJSONParser::ReadInvalidModule(const char* module_filename, |