diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-12-22 20:02:26 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-12-22 20:02:26 +0000 |
| commit | 437a5ae82c6d2a2a4f54ae178777ac61d3e32bba (patch) | |
| tree | 52551e47702030af9109ca9e1fe4912188e537bc /src/test/java | |
| parent | c4182411993ee33da3a08f9ae81b98085b3269bb (diff) | |
Add tests for serializing Wasm block types
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/backends/wasm/structure/binary/WasmBinaryFormatInstructionsTests.java | 60 |
1 files changed, 60 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 5898b350..06e8f0ea 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 @@ -1,5 +1,6 @@ package org.shedlang.compiler.backends.wasm.structure.binary; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.shedlang.compiler.backends.wasm.structure.ast.instructions.*; @@ -18,6 +19,65 @@ import static org.shedlang.compiler.backends.wasm.structure.binary.WasmBinaryFor @ExtendWith({SnapshotResolver.class}) public class WasmBinaryFormatInstructionsTests { + // == Control Instructions == + + @Test + public void canSerializeBlockTypeEmpty(Snapshotter snapshotter) throws IOException, InterruptedException { + var instructions = List.of( + new WasmI32Const(0), + new WasmIf( + WasmBlockType.of(), + List.of(), + List.of() + ) + ); + + var result = serializeInstructions(instructions); + + snapshotter.assertSnapshot(result); + } + + @Test + public void canSerializeBlockTypeSingleValue(Snapshotter snapshotter) throws IOException, InterruptedException { + var instructions = List.of( + new WasmI32Const(0), + new WasmIf( + WasmBlockType.of(WasmValueType.I64), + List.of(new WasmI64Const(0)), + List.of(new WasmI64Const(1)) + ), + new WasmDrop() + ); + + var result = serializeInstructions(instructions); + + snapshotter.assertSnapshot(result); + } + + @Test + @Disabled("WIP") + public void canSerializeBlockTypeMultipleValues(Snapshotter snapshotter) throws IOException, InterruptedException { + var instructions = List.of( + new WasmI32Const(0), + new WasmIf( + WasmBlockType.of(WasmValueType.I64, WasmValueType.I32), + List.of( + new WasmI64Const(0), + new WasmI32Const(0) + ), + List.of( + new WasmI64Const(1), + new WasmI32Const(1) + ) + ), + new WasmDrop() + ); + + var result = serializeInstructions(instructions); + + snapshotter.assertSnapshot(result); + } + // == Memory Instructions == @Test |
