diff options
author | Ben Smith <binjimin@gmail.com> | 2018-02-13 22:08:47 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-13 22:08:47 -0800 |
commit | 6589cbb48abe0d1ecaf14b59b22bfbb70f62a77a (patch) | |
tree | 1248864fd1aaab87ff484d0e7015551f733a2572 /src | |
parent | 0e4a9d04c535d2b9dc9a00fbe95c2f941d5677e1 (diff) | |
download | wabt-6589cbb48abe0d1ecaf14b59b22bfbb70f62a77a.tar.gz wabt-6589cbb48abe0d1ecaf14b59b22bfbb70f62a77a.tar.bz2 wabt-6589cbb48abe0d1ecaf14b59b22bfbb70f62a77a.zip |
Update testsuite (#757)
The spectest module's functions and globals are no longer overloaded, so
their implementations in `spectest-interp` and `spec-wasm2c-prefix.c`
have to be changed as well.
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/spectest-interp.cc | 51 |
1 files changed, 22 insertions, 29 deletions
diff --git a/src/tools/spectest-interp.cc b/src/tools/spectest-interp.cc index 17426767..f333648e 100644 --- a/src/tools/spectest-interp.cc +++ b/src/tools/spectest-interp.cc @@ -847,7 +847,11 @@ class SpectestHostImportDelegate : public HostImportDelegate { interp::Func* func, interp::FuncSignature* func_sig, const ErrorCallback& callback) override { - if (import->field_name == "print") { + if (import->field_name == "print" || import->field_name == "print_i32" || + import->field_name == "print_f32" || + import->field_name == "print_f64" || + import->field_name == "print_i32_f32" || + import->field_name == "print_f64_f64") { cast<HostFunc>(func)->callback = DefaultHostCallback; return wabt::Result::Ok; } else { @@ -891,34 +895,23 @@ class SpectestHostImportDelegate : public HostImportDelegate { wabt::Result ImportGlobal(interp::GlobalImport* import, interp::Global* global, const ErrorCallback& callback) override { - if (import->field_name == "global") { - switch (global->typed_value.type) { - case Type::I32: - global->typed_value.value.i32 = 666; - break; - - case Type::F32: { - float value = 666.6f; - memcpy(&global->typed_value.value.f32_bits, &value, sizeof(value)); - break; - } - - case Type::I64: - global->typed_value.value.i64 = 666; - break; - - case Type::F64: { - double value = 666.6; - memcpy(&global->typed_value.value.f64_bits, &value, sizeof(value)); - break; - } - - default: - PrintError(callback, "bad type for host global import " PRIimport, - PRINTF_IMPORT_ARG(*import)); - return wabt::Result::Error; - } - + if (import->field_name == "global_i32") { + global->typed_value.type = Type::I32; + global->typed_value.value.i32 = 666; + return wabt::Result::Ok; + } else if (import->field_name == "global_f32") { + global->typed_value.type = Type::F32; + float value = 666.6f; + memcpy(&global->typed_value.value.f32_bits, &value, sizeof(value)); + return wabt::Result::Ok; + } else if (import->field_name == "global_i64") { + global->typed_value.type = Type::I64; + global->typed_value.value.i64 = 666; + return wabt::Result::Ok; + } else if (import->field_name == "global_f64") { + global->typed_value.type = Type::F64; + double value = 666.6; + memcpy(&global->typed_value.value.f64_bits, &value, sizeof(value)); return wabt::Result::Ok; } else { PrintError(callback, "unknown host global import " PRIimport, |