aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-21 16:52:22 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-21 16:52:22 +0100
commit107df69fcf9d53c320165e7f3f946c03e3f5bfc4 (patch)
treeba17b8d1bbec05e9bb80add6559f324aa32e73a9 /src/test/java/org
parentd9a377762129c72ff18c34c8268579517ae6c3bf (diff)
Add byte data values
Diffstat (limited to 'src/test/java/org')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java18
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioTesting.java8
2 files changed, 22 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 ba602d67..b42a2926 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -5,6 +5,7 @@ import org.shedlang.compiler.patio.ast.PatioFunctionDeclaration;
import org.shedlang.compiler.patio.ast.PatioFunctionDefinition;
import org.shedlang.compiler.patio.ast.PatioVisibility;
import org.shedlang.compiler.patio.ast.types.PatioDataLayouts;
+import org.shedlang.compiler.patio.ast.types.PatioDataValues;
import org.shedlang.compiler.patio.ast.types.PatioTypes;
import org.shedlang.compiler.patio.instructions.Patio;
@@ -392,7 +393,7 @@ public class PatioSerializerTests {
// == Data layouts ==
@Test
- public void canSerializeArray() {
+ public void canSerializeDataLayoutArray() {
var layout = PatioDataLayouts.array(PatioDataLayouts.scalar(PatioTypes.INT), 4);
var string = PatioTesting.serializeDataLayout(layout);
@@ -401,7 +402,7 @@ public class PatioSerializerTests {
}
@Test
- public void canSerializeScalar() {
+ public void canSerializeDataLayoutScalar() {
var layout = PatioDataLayouts.scalar(PatioTypes.INT);
var string = PatioTesting.serializeDataLayout(layout);
@@ -410,7 +411,7 @@ public class PatioSerializerTests {
}
@Test
- public void canSerializeStruct() {
+ public void canSerializeDataLayoutStruct() {
var layout = PatioDataLayouts.structFlat(List.of(PatioTypes.INT, PatioTypes.INT, PatioTypes.DATA_POINTER));
var string = PatioTesting.serializeDataLayout(layout);
@@ -419,4 +420,15 @@ public class PatioSerializerTests {
(struct (int int data-ptr))"""
));
}
+
+ // == Data values ==
+
+ @Test
+ public void canSerializeDataValueByte() {
+ var value = PatioDataValues.byte_(0xc8);
+
+ var string = PatioTesting.serializeDataValue(value);
+
+ assertThat(string, equalTo("(byte 0xc8)"));
+ }
}
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
index d90f9534..de20da69 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioTesting.java
@@ -4,9 +4,9 @@ import org.shedlang.compiler.patio.ast.PatioCompilationUnit;
import org.shedlang.compiler.patio.ast.PatioCompilationUnitElement;
import org.shedlang.compiler.patio.ast.PatioSerializer;
import org.shedlang.compiler.patio.ast.instructions.PatioInstruction;
-import org.shedlang.compiler.patio.ast.operands.PatioLocalRef;
import org.shedlang.compiler.patio.ast.operands.PatioOperand;
import org.shedlang.compiler.patio.ast.types.PatioDataLayout;
+import org.shedlang.compiler.patio.ast.types.PatioDataValue;
import org.shedlang.compiler.patio.ast.types.PatioType;
class PatioTesting {
@@ -72,6 +72,12 @@ class PatioTesting {
return builder.toString();
}
+ static String serializeDataValue(PatioDataValue value) {
+ var builder = new StringBuilder();
+ PatioSerializer.serializeDataValue(value, builder);
+ return builder.toString();
+ }
+
static String serializeInstruction(PatioInstruction instruction) {
var builder = new StringBuilder();
PatioSerializer.serializeInstruction(instruction, builder);