diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-26 23:02:50 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-26 23:02:50 +0000 |
| commit | d245348585002dae57dd03ba4bb1e9382e6fffe9 (patch) | |
| tree | 0f5fee2099c0bcb242196257d5d169b4286402d5 /src/test/java | |
| parent | 73156b8d99b99c6cdb1eb45f9c7d96a8bf75dc00 (diff) | |
Add support for i64.load instruction
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java index 80a5b609..373ad37b 100644 --- a/src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java +++ b/src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java @@ -4,6 +4,9 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.shedlang.compiler.backends.wasm.structure.ast.instructions.*; import org.shedlang.compiler.backends.wasm.structure.ast.modules.*; +import org.shedlang.compiler.backends.wasm.structure.ast.types.WasmIndexType; +import org.shedlang.compiler.backends.wasm.structure.ast.types.WasmLimits; +import org.shedlang.compiler.backends.wasm.structure.ast.types.WasmMemoryType; import org.shedlang.compiler.backends.wasm.structure.ast.types.WasmValueType; import org.shedlang.compiler.testing.snapshots.SnapshotResolver; import org.shedlang.compiler.testing.snapshots.Snapshotter; @@ -16,6 +19,34 @@ import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFor @ExtendWith({SnapshotResolver.class}) public class WasmBinaryFormatInstructionsTests { + // == Memory Instructions == + + @Test + public void canSerializeI32Load(Snapshotter snapshotter) throws IOException, InterruptedException { + var instructions = List.of( + new WasmI32Const(0), + new WasmI32Load(new WasmMemoryArg(128, WasmAlignment.NONE)), + new WasmDrop() + ); + + var result = serializeInstructions(instructions); + + snapshotter.assertSnapshot(result); + } + + @Test + public void canSerializeI64Load(Snapshotter snapshotter) throws IOException, InterruptedException { + var instructions = List.of( + new WasmI32Const(0), + new WasmI64Load(new WasmMemoryArg(128, WasmAlignment.NONE)), + new WasmDrop() + ); + + var result = serializeInstructions(instructions); + + snapshotter.assertSnapshot(result); + } + // == Numeric Instructions == @Test @@ -237,6 +268,7 @@ public class WasmBinaryFormatInstructionsTests { <? extends WasmInstruction> instructions ) throws IOException, InterruptedException { var module = WasmModule.EMPTY + .addMemory(new WasmMemory(new WasmMemoryType(WasmLimits.min32(0)))) .addFunction(new WasmFunction( "f", List.of(), |
