From 60270ec2c59b803804d67dd94ceea12b8857e4d7 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 25 Jun 2023 14:45:46 +0100 Subject: Add datasegments to WASM binary format --- .../structure/WasmBinaryFormatModuleTests.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/structure/WasmBinaryFormatModuleTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/structure/WasmBinaryFormatModuleTests.java index bab17edd..1979dee8 100644 --- a/src/test/java/org/shedlang/compiler/backends/wasm/structure/WasmBinaryFormatModuleTests.java +++ b/src/test/java/org/shedlang/compiler/backends/wasm/structure/WasmBinaryFormatModuleTests.java @@ -270,6 +270,28 @@ public class WasmBinaryFormatModuleTests { snapshotter.assertSnapshot(result); } + @Test + public void canSerializeModuleWithDataSegments(Snapshotter snapshotter) throws IOException, InterruptedException { + var module = WasmModule.EMPTY + .addMemory(new WasmMemory(new WasmMemoryType(WasmLimits.min(10)))) + .addDataSegment(new WasmDataSegment( + ".data", + new byte[] { 1, 2, 3, 4 }, + new WasmExpression(List.of(new WasmI32Const(0))), + WasmAlignment.ALIGN_32_BIT + )) + .addDataSegment(new WasmDataSegment( + ".rodata", + new byte[] { 4, 5, 6, 7 }, + new WasmExpression(List.of(new WasmI32Const(4))), + WasmAlignment.NONE + )); + + var result = serializeModule(module); + + snapshotter.assertSnapshot(result); + } + @Test public void canSerializeModuleWithInitFuncs(Snapshotter snapshotter) throws IOException, InterruptedException { var module = WasmModule.EMPTY -- cgit v1.2.3