summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wasm-shell.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/wasm-shell.cpp b/src/wasm-shell.cpp
index 4d16a8d3b..f5762807d 100644
--- a/src/wasm-shell.cpp
+++ b/src/wasm-shell.cpp
@@ -156,12 +156,21 @@ int main(int argc, char **argv) {
arguments.push_back(argument->dyn_cast<Const>()->value);
}
bool trapped = false;
+ Literal result;
if (setjmp(interface->trapState) == 0) {
- instance->callFunction(name, arguments);
+ result = instance->callFunction(name, arguments);
} else {
trapped = true;
}
- if (id == ASSERT_RETURN) assert(!trapped);
+ if (id == ASSERT_RETURN) {
+ assert(!trapped);
+ Literal expected;
+ if (curr.size() >= 3) {
+ expected = builder.parseExpression(*curr[2])->dyn_cast<Const>()->value;
+ }
+ std::cerr << "seen " << result << ", expected " << expected << '\n';
+ assert(expected == result);
+ }
if (id == ASSERT_TRAP) assert(trapped);
i++;
}