diff --git a/plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/MultiProjectFunctionalTest.java b/plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/MultiProjectFunctionalTest.java deleted file mode 100644 index 9ec23c9..0000000 --- a/plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/MultiProjectFunctionalTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package br.dev.pedrolamarao.gradle.metal; - -import org.gradle.testkit.runner.GradleRunner; -import org.junit.jupiter.api.Test; - -import java.nio.file.Files; - -public class MultiProjectFunctionalTest extends MetalTestBase -{ - /** - * There are two archive projects, foo and bar, with main C++ sources. - * Both foo and bar test source set is empty. - * Bar depends on foo. - * Running check must not try to run nonexistent test applications. - * @see https://github.com/pedrolamarao/gradle-metal/issues/52 - */ - @Test - void issue52 () throws Exception - { - final var fooDir = projectDir.resolve("foo"); - Files.createDirectories(fooDir); - Files.writeString(fooDir.resolve("build.gradle.kts"), - """ - plugins { - id("br.dev.pedrolamarao.metal.archive") - id("br.dev.pedrolamarao.metal.cpp") - id("br.dev.pedrolamarao.metal.cxx") - } - - metal { - cpp { - main { - public = true - } - } - } - """); - - final var barDir = projectDir.resolve("bar"); - Files.createDirectories(barDir); - Files.writeString(barDir.resolve("build.gradle.kts"), - """ - plugins { - id("br.dev.pedrolamarao.metal.archive") - id("br.dev.pedrolamarao.metal.cxx") - } - - dependencies { - implementation(project(":foo")) - } - """); - - final var fooCppDir = fooDir.resolve("src/main/cpp"); - Files.createDirectories(fooCppDir); - Files.writeString(fooCppDir.resolve("foo.h"), - """ - #pragma once - - int foo (int argc, char * argv[]); - """); - - final var fooCxxDir = fooDir.resolve("src/main/cxx"); - Files.createDirectories(fooCxxDir); - Files.writeString(fooCxxDir.resolve("foo.cxx"), - """ - #include - - int foo (int argc, char * argv[]) - { - return 0; - } - """); - - final var barCxxDir = projectDir.resolve("bar/main/cxx"); - Files.createDirectories(barCxxDir); - Files.writeString(barCxxDir.resolve("bar.cxx"), - """ - #include - - int bar (int argc, char * argv[]) - { - return foo(argc,argv); - } - """); - - Files.writeString(projectDir.resolve("build.gradle.kts"), - """ - plugins { - id("base") - } - """); - - Files.writeString(projectDir.resolve("settings.gradle.kts"), - """ - include("bar") - include("foo") - """); - - GradleRunner.create() - .withArguments("--configuration-cache","check") - .withPluginClasspath() - .withProjectDir(projectDir.toFile()) - .build(); - } -} diff --git a/plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/asm/AsmFunctionalMetalTest.java b/plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/asm/AsmFunctionalMetalTest.java deleted file mode 100644 index cb886c7..0000000 --- a/plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/asm/AsmFunctionalMetalTest.java +++ /dev/null @@ -1,165 +0,0 @@ -package br.dev.pedrolamarao.gradle.metal.asm; - -import br.dev.pedrolamarao.gradle.metal.MetalTestBase; -import org.gradle.testkit.runner.GradleRunner; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.nio.file.Files; - -import static org.junit.jupiter.api.Assertions.*; - -public class AsmFunctionalMetalTest extends MetalTestBase -{ - @Test - public void compile () throws IOException - { - Files.createDirectories(projectDir.resolve("src/main/asm")); - - Files.writeString(projectDir.resolve("src/main/asm/bar.s"), - """ - .global foo - foo: - ret - """ - ); - - Files.writeString(projectDir.resolve("build.gradle.kts"), - """ - plugins { - id("br.dev.pedrolamarao.metal.asm") - } - - metal { - asm { - create("main") - } - } - """ - ); - - GradleRunner.create() - .withArguments("--configuration-cache","compile-main-asm") - .withPluginClasspath() - .withProjectDir(projectDir.toFile()) - .build(); - - assertTrue( Files.exists(projectDir.resolve("build/obj")) ); - - try (var stream = Files.walk(projectDir.resolve("build/obj")).filter(Files::isRegularFile)) { - assertEquals( 1, stream.count() ); - } - } - - @Test - public void compileOptions () throws IOException - { - Files.writeString(projectDir.resolve("build.gradle.kts"), - """ - plugins { - id("br.dev.pedrolamarao.metal.asm") - } - - metal { - compileOptions = listOf("--foo") - asm { create("main") } - } - - tasks.register("compileOptions") { - val compileOptions = metal.asm.named("main").flatMap{it.compileOptions} - doLast { - print("${compileOptions.get()}") - } - } - """ - ); - - final var compileOptions = GradleRunner.create() - .withArguments("--configuration-cache","--quiet","compileOptions") - .withPluginClasspath() - .withProjectDir(projectDir.toFile()) - .build(); - - assertEquals("[--foo]",compileOptions.getOutput()); - } - - @Test - public void targetDisabled () throws IOException - { - Files.createDirectories(projectDir.resolve("src/main/asm")); - - Files.writeString(projectDir.resolve("src/main/asm/bar.s"), - """ - .global foo - foo: - ret - """ - ); - - Files.writeString(projectDir.resolve("build.gradle.kts"), - """ - plugins { - id("br.dev.pedrolamarao.metal.asm") - } - - metal { - asm { - create("main") { - targets = setOf("i686-elf") - } - } - } - """ - ); - - GradleRunner.create() - .withArguments("--configuration-cache","compile-main-asm","-Pmetal.target=x86_64-elf") - .withPluginClasspath() - .withProjectDir(projectDir.toFile()) - .build(); - - assertFalse( Files.exists(projectDir.resolve("build/obj")) ); - } - - @Test - public void targetEnabled () throws IOException - { - Files.createDirectories(projectDir.resolve("src/main/asm")); - - Files.writeString(projectDir.resolve("src/main/asm/bar.s"), - """ - .global foo - foo: - ret - """ - ); - - Files.writeString(projectDir.resolve("build.gradle.kts"), - """ - plugins { - id("br.dev.pedrolamarao.metal.asm") - } - - metal { - asm { - create("main") { - targets = setOf("i686-elf") - } - } - } - """ - ); - - GradleRunner.create() - .withArguments("--configuration-cache","compile-main-asm","-Pmetal.target=i686-elf") - .withPluginClasspath() - .withProjectDir(projectDir.toFile()) - .build(); - - assertTrue( Files.exists(projectDir.resolve("build/obj")) ); - - try (var stream = Files.walk(projectDir.resolve("build/obj")).filter(Files::isRegularFile)) { - assertEquals( 1, stream.count() ); - } - } -}