diff --git a/buildSrc/src/main/java/org/jastadd/relast/plugin/RelastTest.java b/buildSrc/src/main/java/org/jastadd/relast/plugin/RelastTest.java index 2193eab52b6ede597fd6458cefd7dec592e5737f..dbda5a403e9c653a3836ead48da7a973bc0ba694 100644 --- a/buildSrc/src/main/java/org/jastadd/relast/plugin/RelastTest.java +++ b/buildSrc/src/main/java/org/jastadd/relast/plugin/RelastTest.java @@ -13,6 +13,7 @@ import java.nio.file.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * RelAst Test Task @@ -165,6 +166,10 @@ public class RelastTest extends DefaultTask { private final String[] genSuffixes = {".ast", ".jadd", "RefResolver.jadd", "ResolverStubs.jrag", "Serializer.jadd"}; + private Path pathToAbsoluteProject(String filename) { + return Paths.get(getProject().getProjectDir().getAbsolutePath(), filename); + } + @TaskAction void runTest() throws IOException { setGroup("verification"); @@ -179,7 +184,7 @@ public class RelastTest extends DefaultTask { // first, delete generated files List<Path> genFiles = new ArrayList<>(); for (String suffix : genSuffixes) { - genFiles.add(Paths.get(absoluteProjectPath, getGrammarName() + suffix)); + genFiles.add(pathToAbsoluteProject(getGrammarName() + suffix)); } if (isVerbose()) { System.out.println("gen files: " + genFiles); @@ -191,8 +196,8 @@ public class RelastTest extends DefaultTask { } }); // create output directories, if not existing - createDirectory(Paths.get(getOutputDir())); - createDirectory(Paths.get(getGrammarName()).getParent()); + createDirectory(pathToAbsoluteProject(getOutputDir())); + createDirectory(pathToAbsoluteProject(getGrammarName()).getParent()); if (isVerbose()) { System.out.println("Pre processing, running relast"); } @@ -209,7 +214,7 @@ public class RelastTest extends DefaultTask { } else { javaExecSpec.setMain("org.jastadd.relast.compiler.Compiler"); } - args.addAll(getRelastFiles()); + args.addAll(getRelastFiles().stream().map(this::pathToAbsoluteProject).collect(Collectors.toList())); args.add("--quiet"); if (isWriteToFile()) { args.add("--file"); @@ -229,7 +234,7 @@ public class RelastTest extends DefaultTask { if (isSet(getSerializer())) { args.add("--serializer=" + getSerializer()); } - args.add("--grammarName=" + getGrammarName()); + args.add("--grammarName=" + pathToAbsoluteProject(getGrammarName())); if (isVerbose()) { System.out.println("Start relast with args: " + args); } @@ -250,13 +255,13 @@ public class RelastTest extends DefaultTask { javaExecSpec.setClasspath(runtimeClasspath); javaExecSpec.setMain("org.jastadd.JastAdd"); List<Object> args = new ArrayList<>(); - args.add("--o=" + getOutputDir()); + args.add("--o=" + pathToAbsoluteProject(getOutputDir())); args.add("--package=" + getPackageName()); if (isSet(getJastAddList())) { args.add("--List=" + getJastAddList()); } args.addAll(genFiles); - args.addAll(getMoreInputFiles()); + args.addAll(getMoreInputFiles().stream().map(this::pathToAbsoluteProject).collect(Collectors.toList())); if (isVerbose()) { System.out.println("Start JastAdd with args: " + args); } diff --git a/ros2rag.tests/build.gradle b/ros2rag.tests/build.gradle index 5ed86502d99e106b73381a7ab1d67bc5725544c7..f8225fc931fe5dba242d61c53d93fc83a5daa28b 100644 --- a/ros2rag.tests/build.gradle +++ b/ros2rag.tests/build.gradle @@ -87,6 +87,7 @@ task preprocessExampleTest(type: JavaExec, group: 'verification') { //} task compileExampleTest(type: RelastTest) { + verbose = true useJastAddNames = true relastFiles 'src/test/02-after-ros2rag/example/Grammar.relast' grammarName = 'src/test/03-after-relast/example/example'