From 99f714d9a1037a3fab0995ce3414206258e68d05 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 19 Jul 2023 20:40:52 +0100 Subject: Generate Patio IR for discard --- .../compiler/patio/PatioCodeGenDiscardTests.java | 23 ++++++++++++++++++++++ .../patio/PatioInstructionSerializerTests.java | 8 +------- .../org/shedlang/compiler/patio/PatioTesting.java | 21 ++++++++++++++++++++ 3 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 src/test/java/org/shedlang/compiler/patio/PatioCodeGenDiscardTests.java create mode 100644 src/test/java/org/shedlang/compiler/patio/PatioTesting.java (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDiscardTests.java b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDiscardTests.java new file mode 100644 index 00000000..7edc2556 --- /dev/null +++ b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDiscardTests.java @@ -0,0 +1,23 @@ +package org.shedlang.compiler.patio; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.shedlang.compiler.stackir.instructions.Instructions; +import org.shedlang.compiler.testing.snapshots.SnapshotResolver; +import org.shedlang.compiler.testing.snapshots.Snapshotter; + +import java.io.IOException; + +import static org.shedlang.compiler.patio.PatioTesting.serialize; + +@ExtendWith({SnapshotResolver.class}) +public class PatioCodeGenDiscardTests { + @Test + public void discardInstructionGeneratesDiscardInstruction(Snapshotter snapshotter) throws IOException { + var stackIr = Instructions.discard(); + + var result = PatioCodeGen.generateInstruction(stackIr); + + snapshotter.assertSnapshot(serialize(result)); + } +} diff --git a/src/test/java/org/shedlang/compiler/patio/PatioInstructionSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioInstructionSerializerTests.java index 1b4119bc..d1a07e2b 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioInstructionSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioInstructionSerializerTests.java @@ -2,8 +2,8 @@ package org.shedlang.compiler.patio; import org.junit.jupiter.api.Test; import org.shedlang.compiler.patio.instructions.Patio; -import org.shedlang.compiler.patio.instructions.PatioInstruction; +import static org.shedlang.compiler.patio.PatioTesting.serialize; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.equalTo; @@ -16,10 +16,4 @@ public class PatioInstructionSerializerTests { assertThat(string, equalTo("(discard)")); } - - private String serialize(PatioInstruction instruction) { - var builder = new StringBuilder(); - PatioInstructionSerializer.serializeInstruction(instruction, builder); - return builder.toString(); - } } diff --git a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java new file mode 100644 index 00000000..562b32f9 --- /dev/null +++ b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java @@ -0,0 +1,21 @@ +package org.shedlang.compiler.patio; + +import org.shedlang.compiler.patio.instructions.PatioInstruction; + +import java.util.List; + +class PatioTesting { + private PatioTesting() {} + + static String serialize(List instructions) { + var builder = new StringBuilder(); + PatioInstructionSerializer.serializeInstructions(instructions, builder); + return builder.toString(); + } + + static String serialize(PatioInstruction instruction) { + var builder = new StringBuilder(); + PatioInstructionSerializer.serializeInstruction(instruction, builder); + return builder.toString(); + } +} -- cgit v1.2.3