aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-12-11 00:49:43 +0000
committerMichael Williamson <mike@zwobble.org>2024-12-11 00:50:50 +0000
commit082e7a06ed147d3bce1116d48b0911119b43af71 (patch)
treea5d484c552241391e8d48a81d77a803a531b5ca1 /src/test/java
parent1b56846cfdf7e25408920bdeb4f46edb721a218f (diff)
Compile Patio code for positional structs
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/Amd64ExampleTests.java1
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/I686ExampleTests.java1
-rw-r--r--src/test/java/org/shedlang/compiler/backends/wasm/Wasm32ExampleTests.java1
-rw-r--r--src/test/java/org/shedlang/compiler/backends/wasm/Wasm64ExampleTests.java1
-rw-r--r--src/test/java/org/shedlang/compiler/shidtopatio/ShidToPatioDefineStructTests.java29
5 files changed, 28 insertions, 5 deletions
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/Amd64ExampleTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/Amd64ExampleTests.java
index 9ddf4aea..206f37b9 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/Amd64ExampleTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/Amd64ExampleTests.java
@@ -23,7 +23,6 @@ public class Amd64ExampleTests extends ExampleTests {
}
private static final Set<String> DISABLED = Set.of(
- "16-struct-positional-fields",
"36-extensions"
);
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/I686ExampleTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/I686ExampleTests.java
index 91ab47d3..b4d2a763 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/I686ExampleTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/I686ExampleTests.java
@@ -23,7 +23,6 @@ public class I686ExampleTests extends ExampleTests {
}
private static final Set<String> DISABLED = Set.of(
- "16-struct-positional-fields",
"36-extensions"
);
diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/Wasm32ExampleTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/Wasm32ExampleTests.java
index 11011341..b1ffd742 100644
--- a/src/test/java/org/shedlang/compiler/backends/wasm/Wasm32ExampleTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/wasm/Wasm32ExampleTests.java
@@ -23,7 +23,6 @@ public class Wasm32ExampleTests extends ExampleTests {
}
private static final Set<String> DISABLED = Set.of(
- "16-struct-positional-fields",
"36-extensions"
);
diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/Wasm64ExampleTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/Wasm64ExampleTests.java
index a855ffb7..3f94a2bd 100644
--- a/src/test/java/org/shedlang/compiler/backends/wasm/Wasm64ExampleTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/wasm/Wasm64ExampleTests.java
@@ -23,7 +23,6 @@ public class Wasm64ExampleTests extends ExampleTests {
}
private static final Set<String> DISABLED = Set.of(
- "16-struct-positional-fields",
"36-extensions"
);
diff --git a/src/test/java/org/shedlang/compiler/shidtopatio/ShidToPatioDefineStructTests.java b/src/test/java/org/shedlang/compiler/shidtopatio/ShidToPatioDefineStructTests.java
index 4b409c74..b363cbb8 100644
--- a/src/test/java/org/shedlang/compiler/shidtopatio/ShidToPatioDefineStructTests.java
+++ b/src/test/java/org/shedlang/compiler/shidtopatio/ShidToPatioDefineStructTests.java
@@ -20,7 +20,7 @@ import static org.zwobble.precisely.Matchers.equalTo;
@ExtendWith({SnapshotResolver.class})
public class ShidToPatioDefineStructTests {
@Test
- public void canGenerateCodeForDefineStruct(Snapshotter snapshotter) throws IOException {
+ public void canGenerateCodeForDefineStructNonPositional(Snapshotter snapshotter) throws IOException {
var structType = Types.struct(NamespaceName.of("Example", "Project"), "User");
var instruction = Shid.defineStruct(
structType,
@@ -35,6 +35,33 @@ public class ShidToPatioDefineStructTests {
StructTypeInfo.builder()
.addField("name", Types.STRING)
.addField("isActive", Types.BOOL)
+ .withFieldsArePositional(false)
+ .build()
+ );
+ var context = ShidToPatioContext.forTypeInfos(typeInfos);
+
+ var result = ShidToPatio.generateInstruction(instruction, context);
+
+ snapshotter.assertSnapshot(serialize(result));
+ }
+
+ @Test
+ public void canGenerateCodeForDefineStructPositional(Snapshotter snapshotter) throws IOException {
+ var structType = Types.struct(NamespaceName.of("Example", "Project"), "User");
+ var instruction = Shid.defineStruct(
+ structType,
+ List.of(
+ Shid.defineStructField("name"),
+ Shid.defineStructField("isActive")
+ )
+ );
+ var typeInfos = TypeInfos.EMPTY
+ .addStructTypeInfo(
+ structType,
+ StructTypeInfo.builder()
+ .addField("name", Types.STRING)
+ .addField("isActive", Types.BOOL)
+ .withFieldsArePositional(true)
.build()
);
var context = ShidToPatioContext.forTypeInfos(typeInfos);