aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-01-22 19:10:41 +0000
committerMichael Williamson <mike@zwobble.org>2024-01-22 19:10:41 +0000
commitc05cccb9f60bc4d4dab4f50bf686b6a94bfc6012 (patch)
treea0f2155a4e490b35e4ea4352189a7c8c1430e5c6 /src/test/java
parentd3bca8fad9f9cb6b6e8f960031887590a97d5dc1 (diff)
Add test for serializing Patio int value literal
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java11
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioTesting.java7
-rw-r--r--src/test/java/org/shedlang/compiler/patio/instructions/Patio.java6
3 files changed, 24 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
index a1be788c..0e4a1c14 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -801,6 +801,17 @@ public class PatioSerializerTests {
assertThat(string, equalTo("(local \"x\")"));
}
+ // == Int values ==
+
+ @Test
+ public void canSerializeIntValueLiteral() {
+ var operand = Patio.intValueLiteral(42);
+
+ var string = PatioTesting.serializeIntValue(operand);
+
+ assertThat(string, equalTo("42"));
+ }
+
// == Types ==
@Test
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
index d787ba06..4de4a4d7 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
@@ -5,6 +5,7 @@ import org.shedlang.compiler.patio.operands.PatioOperand;
import org.shedlang.compiler.patio.types.PatioDataLayout;
import org.shedlang.compiler.patio.types.PatioDataValue;
import org.shedlang.compiler.patio.types.PatioType;
+import org.shedlang.compiler.patio.values.PatioIntValue;
public class PatioTesting {
private PatioTesting() {}
@@ -39,6 +40,12 @@ public class PatioTesting {
return builder.toString();
}
+ static String serializeIntValue(PatioIntValue value) {
+ var builder = new StringBuilder();
+ PatioSerializer.serializeIntValue(value, builder);
+ return builder.toString();
+ }
+
static String serializeOperand(PatioOperand operand) {
var builder = new StringBuilder();
PatioSerializer.serializeOperand(operand, builder);
diff --git a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
index 7171f20f..8129dcff 100644
--- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
+++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
@@ -5,6 +5,8 @@ import org.shedlang.compiler.patio.operands.*;
import org.shedlang.compiler.patio.types.PatioDataLayout;
import org.shedlang.compiler.patio.types.PatioDataValue;
import org.shedlang.compiler.patio.types.PatioType;
+import org.shedlang.compiler.patio.values.PatioIntValue;
+import org.shedlang.compiler.patio.values.PatioIntValueLiteral;
import org.shedlang.compiler.sources.Sources;
import java.util.List;
@@ -203,6 +205,10 @@ public class Patio {
);
}
+ public static PatioIntValue intValueLiteral(int value) {
+ return new PatioIntValueLiteral(value);
+ }
+
public static PatioInstruction localStore(PatioLocalRef destination, PatioOperand value) {
return new PatioLocalStore(
destination,