浏览代码

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);