aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-01-28 19:44:09 +0000
committerMichael Williamson <mike@zwobble.org>2024-01-28 19:44:09 +0000
commit07f45f7f7166bb0d3ba05e4f0da99f702429f3b6 (patch)
treeb888a0b0af0066a5052219bca10937420a1726f6 /src/test/java
parent8e069d9ddfd8c34f742d1dc4301a0fa5a76c16f6 (diff)
Add test for serializing Patio data pointer values
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.java9
3 files changed, 23 insertions, 4 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
index 29110e81..7f1aea16 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -795,6 +795,17 @@ public class PatioSerializerTests {
assertThat(string, equalTo("(local \"x\")"));
}
+ // == Data ptr values ==
+
+ @Test
+ public void canSerializeDataPtrValueDataElement() {
+ var dataPtrValue = Patio.dataPtrValueDataElement("string");
+
+ var string = PatioTesting.serializeDataPtrValue(dataPtrValue);
+
+ assertThat(string, equalTo("\"string\""));
+ }
+
// == Int values ==
@Test
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
index 4de4a4d7..35130f10 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.PatioDataPtrValue;
import org.shedlang.compiler.patio.values.PatioIntValue;
public class PatioTesting {
@@ -28,6 +29,12 @@ public class PatioTesting {
return builder.toString();
}
+ static String serializeDataPtrValue(PatioDataPtrValue value) {
+ var builder = new StringBuilder();
+ PatioSerializer.serializeDataPtrValue(value, builder);
+ return builder.toString();
+ }
+
static String serializeDataValue(PatioDataValue value) {
var builder = new StringBuilder();
PatioSerializer.serializeDataValue(value, 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 027f23e1..b5cd226d 100644
--- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
+++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
@@ -5,10 +5,7 @@ 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.PatioIntValueByteOffsetOf;
-import org.shedlang.compiler.patio.values.PatioIntValueByteSizeOf;
-import org.shedlang.compiler.patio.values.PatioIntValueLiteral;
+import org.shedlang.compiler.patio.values.*;
import org.shedlang.compiler.sources.Sources;
import java.util.List;
@@ -111,6 +108,10 @@ public class Patio {
);
}
+ public static PatioDataPtrValue dataPtrValueDataElement(String value) {
+ return new PatioDataPtrValueDataElement(value);
+ }
+
public static PatioExceptionTypeDefinition exceptionTypeDefinition(String name, PatioType valueType) {
return new PatioExceptionTypeDefinition(name, valueType, Sources.NULL);
}