aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-21 12:38:04 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-21 12:38:04 +0100
commit511304a1a553249a2d26f8b6ac227190641ec614 (patch)
treea1538cb8d6169465eb6507953871116d051c9734 /src/test/java
parent3f71d5e7eb9bc1eb49e3e2694f262233b470ac7b (diff)
Add function declarations to Patio
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
index 9ca59e7d..cfb9bd56 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -1,6 +1,7 @@
package org.shedlang.compiler.patio;
import org.junit.jupiter.api.Test;
+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.PatioTypes;
@@ -55,6 +56,27 @@ public class PatioSerializerTests {
}
@Test
+ public void canSerializeFunctionDeclaration() {
+ var element = PatioFunctionDeclaration.builder()
+ .withName("f")
+ .addParam(Patio.local("param1", PatioTypes.INT))
+ .addParam(Patio.local("param2", PatioTypes.DATA_POINTER))
+ .withReturnType(PatioTypes.VOID)
+ .build();
+
+ var string = PatioTesting.serializeCompilationUnitElement(element);
+
+ assertThat(string, equalTo("""
+ (
+ function-decl
+ "f"
+ params=(("param1" int) ("param2" data-ptr))
+ return-type=void
+ )"""
+ ));
+ }
+
+ @Test
public void canSerializeFunctionDefinition() {
var element = PatioFunctionDefinition.builder()
.withName("f")