aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-12 20:36:35 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-12 20:36:35 +0100
commitae0f6f8ce9a82a17f44e31f21e437bd66a910f23 (patch)
treeb6c89cbe9c71fae93911ee25febdfc95fbdeb4a3 /src/test/java
parentf67078f6cf8eb1d1da9dad8bb043344b13387ada (diff)
Add LLVM array operand
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java18
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java7
2 files changed, 25 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
index 4d3fa350..64221e38 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
@@ -4,6 +4,8 @@ import org.junit.jupiter.api.Test;
import org.shedlang.compiler.backends.llvm.ir.ast.LlvmIr;
import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmTypes;
+import java.util.List;
+
import static org.shedlang.compiler.backends.llvm.ir.LlvmIrSerializerTesting.serializeToString;
import static org.zwobble.precisely.AssertThat.assertThat;
import static org.zwobble.precisely.Matchers.equalTo;
@@ -37,6 +39,22 @@ public class LlvmIrSerializerOperandsTests {
}
@Test
+ public void arrayIsSerializedAsTypedOperandsInArray() {
+ var operand = LlvmIr.operandArray(
+ LlvmTypes.INT_64,
+ List.of(
+ LlvmIr.operandInt(1),
+ LlvmIr.operandInt(2),
+ LlvmIr.operandInt(3)
+ )
+ );
+
+ var result = serializeToString(operand, LlvmIrSerializer::serializeOperand);
+
+ assertThat(result, equalTo("[i64 1, i64 2, i64 3]"));
+ }
+
+ @Test
public void typedOperandHasTypeAndValue() {
var operand = LlvmIr.typedOperand(LlvmTypes.INT_64, LlvmIr.operandInt(42));
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java
index 470406e4..887bc655 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java
@@ -35,6 +35,13 @@ public class LlvmIr {
return new LlvmBasicBlock(Optional.of(name), instructions, terminator);
}
+ public static LlvmOperand operandArray(
+ LlvmType type,
+ List<LlvmOperand> elements
+ ) {
+ return new LlvmOperandArray(type, elements);
+ }
+
public static LlvmOperand operandInt(long value) {
return new LlvmOperandInt(value);
}