summaryrefslogtreecommitdiff
path: root/src/tools/wasm-interp.cc
diff options
context:
space:
mode:
authorBen Smith <binjimin@gmail.com>2017-09-04 10:42:33 -0700
committerGitHub <noreply@github.com>2017-09-04 10:42:33 -0700
commit8a25289451c262d7c5d791c087b9052220b149ac (patch)
tree0ee1a28ca395a0d8a1dcb439fb76233547e0e56a /src/tools/wasm-interp.cc
parent19483e5c93571d4288122adf7f5350e5425ae393 (diff)
downloadwabt-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.cc13
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,