From 7a53572870ba980d84a9e8bb266a8e9d2127c032 Mon Sep 17 00:00:00 2001 From: Steven Date: Tue, 12 Apr 2022 10:59:34 -0700 Subject: [PATCH] add tests for input or output port in main or federated reactors --- .../compiler/LinguaFrancaValidationTest.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/org.lflang.tests/src/org/lflang/tests/compiler/LinguaFrancaValidationTest.java b/org.lflang.tests/src/org/lflang/tests/compiler/LinguaFrancaValidationTest.java index d3a64e19d8..c53607bc21 100644 --- a/org.lflang.tests/src/org/lflang/tests/compiler/LinguaFrancaValidationTest.java +++ b/org.lflang.tests/src/org/lflang/tests/compiler/LinguaFrancaValidationTest.java @@ -2032,6 +2032,86 @@ public void testUnnamedReactor() throws Exception { "Reactor must be named."); } + @Test + public void testMainHasInput() throws Exception { + // Java 17: + // String testCase = """ + // target C; + // main reactor { + // input x:int; + // } + // """ + // Java 11: + String testCase = String.join(System.getProperty("line.separator"), + "target C;", + "main reactor {", + " input x:int;", + "}" + ); + validator.assertError(parseWithoutError(testCase), LfPackage.eINSTANCE.getInput(), null, + "Main reactor cannot have inputs."); + } + + @Test + public void testFederatedHasInput() throws Exception { + // Java 17: + // String testCase = """ + // target C; + // federated reactor { + // input x:int; + // } + // """ + // Java 11: + String testCase = String.join(System.getProperty("line.separator"), + "target C;", + "federated reactor {", + " input x:int;", + "}" + ); + validator.assertError(parseWithoutError(testCase), LfPackage.eINSTANCE.getInput(), null, + "Main reactor cannot have inputs."); + } + + @Test + public void testMainHasOutput() throws Exception { + // Java 17: + // String testCase = """ + // target C; + // main reactor { + // output x:int; + // } + // """ + // Java 11: + String testCase = String.join(System.getProperty("line.separator"), + "target C;", + "main reactor {", + " output x:int;", + "}" + ); + validator.assertError(parseWithoutError(testCase), LfPackage.eINSTANCE.getOutput(), null, + "Main reactor cannot have outputs."); + } + + @Test + public void testFederatedHasOutput() throws Exception { + // Java 17: + // String testCase = """ + // target C; + // federated reactor { + // output x:int; + // } + // """ + // Java 11: + String testCase = String.join(System.getProperty("line.separator"), + "target C;", + "federated reactor {", + " output x:int;", + "}" + ); + validator.assertError(parseWithoutError(testCase), LfPackage.eINSTANCE.getOutput(), null, + "Main reactor cannot have outputs."); + } + @Test public void testMultipleMainReactor() throws Exception { // Java 17: