diff options
-rw-r--r-- | build.gradle | 4 | ||||
-rw-r--r-- | gradle.properties | 2 | ||||
-rw-r--r-- | src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java | 10 | ||||
-rw-r--r-- | src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java | 3 | ||||
-rw-r--r-- | src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java | 27 |
5 files changed, 16 insertions, 30 deletions
diff --git a/build.gradle b/build.gradle index f64913d..3e1ef66 100644 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,9 @@ tasks.register('functionalTest', Test) { check.dependsOn functionalTest tasks.withType(Test).configureEach { - useJUnitPlatform() + useJUnitPlatform { + includeTags 'debug' + } } dependencies { diff --git a/gradle.properties b/gradle.properties index aa3263c..4e2b9ee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ group = ch.fhnw.thga -version = 1.4.1-alpha
\ No newline at end of file +version = 1.5.0-alpha
\ No newline at end of file diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java index 395d26f..ac1a038 100644 --- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java +++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java @@ -34,6 +34,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayNameGenerator; import org.junit.jupiter.api.IndicativeSentencesGeneration; import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; @@ -362,16 +363,19 @@ public class FregePluginFunctionalTest { @TestInstance(Lifecycle.PER_CLASS) @IndicativeSentencesGeneration(separator = " -> ", generator = DisplayNameGenerator.ReplaceUnderscores.class) class Repl_frege_task_works { - @Test + @Test + @Tag("debug") void given_minimal_build_file_config() throws Exception { - Files.createDirectories(testProjectDir.toPath().resolve(Paths.get("src", "main", "frege"))); String minimalBuildFileConfig = createFregeSection( fregeBuilder.version("'3.25.84'").release("'3.25alpha'").build()); appendToFile(buildFile, minimalBuildFileConfig); - BuildResult result = runGradleTask(REPL_FREGE_TASK_NAME); + BuildResult result = runGradleTask(REPL_FREGE_TASK_NAME, "-q"); assertTrue(project.getTasks().getByName(REPL_FREGE_TASK_NAME) instanceof ReplFregeTask); assertEquals(SUCCESS, result.task(":" + REPL_FREGE_TASK_NAME).getOutcome()); + Path expectedFregeJarPath = testProjectDir.toPath() + .resolve(Paths.get(DEFAULT_DOWNLOAD_DIRECTORY, "frege3.25.84.jar")).toAbsolutePath(); + assertTrue(result.getOutput().contains(expectedFregeJarPath.toString())); } } }
\ No newline at end of file diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java b/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java index 5fc89b2..b4948e6 100644 --- a/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java +++ b/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java @@ -42,9 +42,8 @@ public class FregePlugin implements Plugin<Project> { task.getFregeDependencies().set(implementation.getAsPath()); }); project.getTasks().register(REPL_FREGE_TASK_NAME, ReplFregeTask.class, task -> { - task.dependsOn(compileFregeTask); + task.dependsOn(setupFregeCompilerTask); task.getFregeCompilerJar().set(setupFregeCompilerTask.get().getFregeCompilerOutputPath()); - task.getFregeOutputDir().set(extension.getOutputDir()); task.getFregeDependencies().set(implementation.getAsPath()); }); } diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java index 9541861..5a915c0 100644 --- a/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java +++ b/src/main/java/ch/fhnw/thga/gradleplugins/ReplFregeTask.java @@ -1,55 +1,36 @@ package ch.fhnw.thga.gradleplugins; -import javax.inject.Inject; - import org.gradle.api.DefaultTask; -import org.gradle.api.file.DirectoryProperty; import org.gradle.api.file.FileCollection; import org.gradle.api.file.RegularFileProperty; import org.gradle.api.logging.Logger; import org.gradle.api.logging.Logging; -import org.gradle.api.model.ObjectFactory; import org.gradle.api.provider.Property; import org.gradle.api.provider.Provider; import org.gradle.api.tasks.Input; -import org.gradle.api.tasks.InputDirectory; import org.gradle.api.tasks.InputFile; import org.gradle.api.tasks.Internal; -import org.gradle.api.tasks.JavaExec; import org.gradle.api.tasks.TaskAction; public abstract class ReplFregeTask extends DefaultTask { public static final Logger LOGGER = Logging.getLogger(SetupFregeTask.class); - public static final String REPL_MAIN_CLASS = "frege.repl.FregeRepl"; - - private final JavaExec javaExec; @InputFile public abstract RegularFileProperty getFregeCompilerJar(); - @InputDirectory - public abstract DirectoryProperty getFregeOutputDir(); - @Input public abstract Property<String> getFregeDependencies(); @Internal public final Provider<FileCollection> getClasspath() { return getFregeDependencies().map(depsClasspath -> { - return depsClasspath.isEmpty() ? getProject().files(getFregeCompilerJar(), getFregeOutputDir()) - : getProject().files(getFregeCompilerJar(), getFregeOutputDir(), depsClasspath); + return depsClasspath.isEmpty() ? getProject().files(getFregeCompilerJar()) + : getProject().files(getFregeCompilerJar(), depsClasspath); }); } - @Inject - public ReplFregeTask(ObjectFactory objectFactory) { - javaExec = objectFactory.newInstance(JavaExec.class); - } - @TaskAction - public void startFregeRepl() { - javaExec.setStandardInput(System.in); - javaExec.getMainClass().set(REPL_MAIN_CLASS); - javaExec.setClasspath(getClasspath().get()).exec(); + public void fregeReplDependencies() { + System.out.println(getClasspath().get().getAsPath()); } } |