From d68a0d01dd602fc3b5c5deda12a1f4053d2ccef1 Mon Sep 17 00:00:00 2001 From: ahuoguo Date: Wed, 9 Oct 2024 18:36:12 -0400 Subject: [PATCH] data segment test --- benchmarks/wasm/data.wat | 17 +++++++++++++++++ src/test/scala/genwasym/TestEval.scala | 2 ++ 2 files changed, 19 insertions(+) create mode 100644 benchmarks/wasm/data.wat diff --git a/benchmarks/wasm/data.wat b/benchmarks/wasm/data.wat new file mode 100644 index 00000000..6da59b2e --- /dev/null +++ b/benchmarks/wasm/data.wat @@ -0,0 +1,17 @@ +(module + (type (;0;) (func (param i32) (result i32))) + (type (;1;) (func (result i32))) + (func (;0;) (type 0) (param i32) (result i32) + local.get 0 + i32.load8_u) + (func (;1;) (type 1) (result i32) + ;; Call the `load_byte` function with an address of 0 + i32.const 0 + call 0) + (memory (;0;) 1) +;; (start 1) ;; should return 72 + ;; Define a memory with an initial size of 1 page (64KB) + (export "memory" (memory 0)) + (export "main" (func 1)) + ;; Initialize memory using the `data` directive at offset 0 + (data (;0;) (i32.const 0) "Hello")) diff --git a/src/test/scala/genwasym/TestEval.scala b/src/test/scala/genwasym/TestEval.scala index f2d66b15..6769202c 100644 --- a/src/test/scala/genwasym/TestEval.scala +++ b/src/test/scala/genwasym/TestEval.scala @@ -45,5 +45,7 @@ class TestEval extends FunSuite { test("btree") { testFile("./benchmarks/wasm/btree/2o1u-unlabeled.wat") } test("fib") { testFile("./benchmarks/wasm/fib.wat", None, Some(144)) } + test("data") { testFile("./benchmarks/wasm/data.wat"), None, Some(72) } + // TODO: add wasm spec tests? How to utilize wast files? }