aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-22 11:47:10 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-22 11:47:10 +0100
commite01d4e5be2093eb9eb9fca62b8eaaa59d7ec882a (patch)
tree7b451702461729e0eca1f051b2e1f50e93dc2ce8 /src/test/java
parente2a87d4a022edfa7a7f552af9117c1ac1669cf32 (diff)
Directly represent scalar data layouts in Patio
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java51
1 files changed, 39 insertions, 12 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
index 8da11ef2..ccca6fc7 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -62,7 +62,7 @@ public class PatioSerializerTests {
@Test
public void canSerializeDataElementMutable() {
- var element = Patio.dataElementMutable("x", PatioDataLayouts.scalar(PatioTypes.INT));
+ var element = Patio.dataElementMutable("x", PatioDataLayouts.INT);
var string = PatioTesting.serializeCompilationUnitElement(element);
@@ -128,12 +128,12 @@ public class PatioSerializerTests {
public void canSerializeAlloc() {
var instruction = Patio.alloc(
"x",
- PatioDataLayouts.structFlat(List.of(PatioTypes.INT, PatioTypes.INT, PatioTypes.DATA_POINTER))
+ PatioDataLayouts.struct(List.of(PatioDataLayouts.INT, PatioDataLayouts.INT, PatioDataLayouts.BYTE))
);
var string = PatioTesting.serializeInstruction(instruction);
- assertThat(string, equalTo("(alloc (local \"x\") (struct (int int data-ptr)))"));
+ assertThat(string, equalTo("(alloc (local \"x\") (struct (int int byte)))"));
}
@Test
@@ -253,7 +253,7 @@ public class PatioSerializerTests {
var instruction = Patio.memoryLoad(
"target",
"pointer",
- PatioDataLayouts.structFlat(List.of(PatioTypes.INT, PatioTypes.INT, PatioTypes.DATA_POINTER)),
+ PatioDataLayouts.struct(List.of(PatioDataLayouts.INT, PatioDataLayouts.INT, PatioDataLayouts.BYTE)),
List.of(1)
);
@@ -264,7 +264,7 @@ public class PatioSerializerTests {
memory-load
(local "target")
pointer=(local "pointer")
- layout=(struct (int int data-ptr))
+ layout=(struct (int int byte))
offset=(1)
)"""
));
@@ -274,7 +274,7 @@ public class PatioSerializerTests {
public void canSerializeMemoryStore() {
var instruction = Patio.memoryStore(
"pointer",
- PatioDataLayouts.structFlat(List.of(PatioTypes.INT, PatioTypes.INT, PatioTypes.DATA_POINTER)),
+ PatioDataLayouts.struct(List.of(PatioDataLayouts.INT, PatioDataLayouts.INT, PatioDataLayouts.BYTE)),
List.of(1),
"value"
);
@@ -285,7 +285,7 @@ public class PatioSerializerTests {
(
memory-store
pointer=(local "pointer")
- layout=(struct (int int data-ptr))
+ layout=(struct (int int byte))
offset=(1)
value=(local "value")
)"""
@@ -408,7 +408,7 @@ public class PatioSerializerTests {
@Test
public void canSerializeDataLayoutArray() {
- var layout = PatioDataLayouts.array(PatioDataLayouts.scalar(PatioTypes.INT), 4);
+ var layout = PatioDataLayouts.array(PatioDataLayouts.INT, 4);
var string = PatioTesting.serializeDataLayout(layout);
@@ -416,8 +416,35 @@ public class PatioSerializerTests {
}
@Test
- public void canSerializeDataLayoutScalar() {
- var layout = PatioDataLayouts.scalar(PatioTypes.INT);
+ public void canSerializeDataLayoutBool() {
+ var layout = PatioDataLayouts.BOOL;
+
+ var string = PatioTesting.serializeDataLayout(layout);
+
+ assertThat(string, equalTo("bool"));
+ }
+
+ @Test
+ public void canSerializeDataLayoutByte() {
+ var layout = PatioDataLayouts.BYTE;
+
+ var string = PatioTesting.serializeDataLayout(layout);
+
+ assertThat(string, equalTo("byte"));
+ }
+
+ @Test
+ public void canSerializeDataLayoutFunctionPointer() {
+ var layout = PatioDataLayouts.FUNCTION_POINTER;
+
+ var string = PatioTesting.serializeDataLayout(layout);
+
+ assertThat(string, equalTo("function-ptr"));
+ }
+
+ @Test
+ public void canSerializeDataLayoutInt() {
+ var layout = PatioDataLayouts.INT;
var string = PatioTesting.serializeDataLayout(layout);
@@ -426,12 +453,12 @@ public class PatioSerializerTests {
@Test
public void canSerializeDataLayoutStruct() {
- var layout = PatioDataLayouts.structFlat(List.of(PatioTypes.INT, PatioTypes.INT, PatioTypes.DATA_POINTER));
+ var layout = PatioDataLayouts.struct(List.of(PatioDataLayouts.INT, PatioDataLayouts.INT, PatioDataLayouts.BYTE));
var string = PatioTesting.serializeDataLayout(layout);
assertThat(string, equalTo("""
- (struct (int int data-ptr))"""
+ (struct (int int byte))"""
));
}