From 07f45f7f7166bb0d3ba05e4f0da99f702429f3b6 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 28 Jan 2024 19:44:09 +0000 Subject: Add test for serializing Patio data pointer values --- .../org/shedlang/compiler/patio/PatioSerializerTests.java | 11 +++++++++++ src/test/java/org/shedlang/compiler/patio/PatioTesting.java | 7 +++++++ .../java/org/shedlang/compiler/patio/instructions/Patio.java | 9 +++++---- 3 files changed, 23 insertions(+), 4 deletions(-) (limited to 'src/test/java') 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); } -- cgit v1.2.3