Преглед изворни кода

LibWasm: Add missing spec extern and prevent spec extern re-use

Add the missing `print` function to the spectest namespace. Also, spec
externs cannot be re-used because operations that modify "memory", for
example, will carry over into subsequent spec test runs. This can be
remedied in the future by implementing some sort of garbage collector
for allocations in the store.
Diego пре 1 година
родитељ
комит
1e19be412f
1 измењених фајлова са 3 додато и 2 уклоњено
  1. 3 2
      Tests/LibWasm/test-wasm.cpp

+ 3 - 2
Tests/LibWasm/test-wasm.cpp

@@ -80,8 +80,9 @@ private:
 
     static HashMap<Wasm::Linker::Name, Wasm::ExternValue> const& spec_test_namespace()
     {
-        if (!s_spec_test_namespace.is_empty())
-            return s_spec_test_namespace;
+        Wasm::FunctionType print_type { {}, {} };
+        auto address_print = alloc_noop_function(print_type);
+        s_spec_test_namespace.set({ "spectest", "print", print_type }, Wasm::ExternValue { *address_print });
 
         Wasm::FunctionType print_i32_type { { Wasm::ValueType(Wasm::ValueType::I32) }, {} };
         auto address_i32 = alloc_noop_function(print_i32_type);