Skip to content

test: use a single method to generate Gradle versions for the tests #108

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,14 @@ package com.github.vlsi.gradle

import org.junit.jupiter.api.Assertions
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.MethodSource

class ErrorReportingTest : BaseGradleTest() {
companion object {
@JvmStatic
private fun gradleVersionAndSettings(): Iterable<Arguments> {
return mutableListOf<Arguments>().apply {
add(Arguments.of("7.0"))
add(Arguments.of("7.5"))
add(Arguments.of("8.0"))
add(Arguments.of("8.14.1"))
}
}
}

// @ParameterizedTest
// @MethodSource("gradleVersionAndSettings")
// @MethodSource("defaultGradleVersionAndSettings")
// @ValueSource(strings=["6.1.1"])
fun `stacktrace is printed`(gradleVersion: String) {
createSettings()
fun `stacktrace is printed`(testCase: TestCase) {
createSettings(testCase)

projectDir.resolve("build.gradle").write("""
plugins { id('com.github.vlsi.gradle-extensions') }
Expand All @@ -52,7 +39,7 @@ class ErrorReportingTest : BaseGradleTest() {
)

val result =
prepare(gradleVersion, "hi", "-q")
prepare(testCase, "hi", "-q")
.buildAndFail()

val output = result.output
Expand All @@ -67,9 +54,9 @@ class ErrorReportingTest : BaseGradleTest() {
}

@ParameterizedTest
@MethodSource("gradleVersionAndSettings")
fun `testng init failure test`(gradleVersion: String) {
createSettings()
@MethodSource("defaultGradleVersionAndSettings")
fun `testng init failure test`(testCase: TestCase) {
createSettings(testCase)

projectDir.resolve("build.gradle").write(
/* language=groovy */
Expand Down Expand Up @@ -112,7 +99,7 @@ class ErrorReportingTest : BaseGradleTest() {
)

val result =
prepare(gradleVersion, "test", "-q")
prepare(testCase, "test", "-q")
.buildAndFail()

val output = result.output
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,29 +28,10 @@ import org.junit.jupiter.params.provider.MethodSource

@Execution(ExecutionMode.SAME_THREAD)
class JandexPluginTest : BaseGradleTest() {

companion object {
val isCI = System.getenv().containsKey("CI") || System.getProperties().containsKey("CI")

@JvmStatic
private fun gradleVersionAndSettings(): Iterable<Arguments> {
if (!isCI) {
// Use only the minimum supported Gradle version to make the test faster
return listOf(arguments("7.0", ConfigurationCache.ON))
}
return mutableListOf<Arguments>().apply {
add(arguments("7.0", ConfigurationCache.ON))
add(arguments("7.4.2", ConfigurationCache.ON))
// Configuration cache supports custom caches since 7.5 only: https://github.com/gradle/gradle/issues/14874
add(arguments("7.5.1", ConfigurationCache.ON))
}
}
}

@ParameterizedTest
@MethodSource("gradleVersionAndSettings")
fun jandexBuildWorks(gradleVersion: String, configurationCache: ConfigurationCache) {
enableConfigurationCache(gradleVersion, configurationCache)
@MethodSource("defaultGradleVersionAndSettings")
fun jandexBuildWorks(testCase: TestCase) {
createSettings(testCase)
projectDir.resolve("src/main/java/acme").toFile().mkdirs()
projectDir.resolve("src/test/java/acme").toFile().mkdirs()
projectDir.resolve("src/main/java/acme/Main.java").write(
Expand Down Expand Up @@ -83,7 +64,7 @@ class JandexPluginTest : BaseGradleTest() {
}
""".trimIndent()
)
val result = prepare(gradleVersion, "check", "jar", "-i").build()
val result = prepare(testCase, "check", "jar", "-i").build()
if (isCI) {
println(result.output)
}
Expand All @@ -94,9 +75,9 @@ class JandexPluginTest : BaseGradleTest() {
"first execution => no cache available,"
}
// Once more, with configuration cache
if (configurationCache == ConfigurationCache.ON) {
prepare(gradleVersion, "clean").build()
val result3 = prepare(gradleVersion, "check", "jar", "-i").build()
if (testCase.configurationCache == ConfigurationCache.ON) {
prepare(testCase, "clean").build()
val result3 = prepare(testCase, "check", "jar", "-i").build()
if (isCI) {
println(result3.output)
}
Expand Down
15 changes: 15 additions & 0 deletions plugins/license-gather-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@ tasks {
}
}

sourcesJar {
// TODO: review if the dependency is required
dependsOn(copyLicenses)
}

processResources {
dependsOn(copyLicenses)
}
Expand All @@ -79,6 +84,11 @@ tasks {
}
}

sourcesJar {
// TODO: review if the dependency is required
dependsOn(saveLicenses)
}

compileKotlin {
require(this is Task)
dependsOn(saveLicenses, copyLicenses)
Expand Down Expand Up @@ -110,6 +120,11 @@ tasks {
}
}

pluginUnderTestMetadata {
// TODO: review if the dependency is required
dependsOn(copyTfidf)
}

jar {
dependsOn(copyTfidf)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

package com.github.vlsi.gradle.license

import com.github.vlsi.gradle.BaseGradleTest
import org.gradle.api.JavaVersion
import org.gradle.testkit.runner.BuildResult
import org.gradle.testkit.runner.GradleRunner
Expand All @@ -27,37 +28,13 @@ import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.MethodSource
import java.nio.file.Path

class GatherLicenseTaskTest {
companion object {
@JvmStatic
private fun gradleVersionAndSettings(): Iterable<Arguments> {
return mutableListOf<Arguments>().apply {
if (JavaVersion.current() <= JavaVersion.VERSION_14) {
add(Arguments.of("6.0", "// no extra settings"))
add(Arguments.of("6.1.1", "// no extra settings"))
}
add(Arguments.of("7.2", "// no extra settings"))
}
}
}

private val gradleRunner = GradleRunner.create().withPluginClasspath()

@TempDir
lateinit var projectDir: Path

fun Path.write(text: String) = this.toFile().writeText(text)

class GatherLicenseTaskTest: BaseGradleTest() {
@ParameterizedTest
@MethodSource("gradleVersionAndSettings")
fun `licenseGathering works`(gradleVersion: String, extraSettings: String) {
projectDir.resolve("settings.gradle").write(
"""
rootProject.name = 'sample'
$extraSettings
"""
)
@MethodSource("disabledConfigurationCacheGradleVersionAndSettings")
fun `licenseGathering works`(testCase: TestCase) {
createSettings(testCase)
projectDir.resolve("build.gradle").write(
/* language=gradle */
"""
import com.github.vlsi.gradle.license.GatherLicenseTask
import com.github.vlsi.gradle.license.api.License
Expand Down Expand Up @@ -94,8 +71,11 @@ class GatherLicenseTaskTest {
"""
)

val result = runGradleBuild(gradleVersion, "generateLicense", "--quiet", "--stacktrace")
val result =
prepare(testCase, "generateLicense", "--quiet", "--stacktrace")
.build()
Assertions.assertEquals(
/* language=xml */
"""
<license-list version='1'>
<components>
Expand Down Expand Up @@ -369,15 +349,4 @@ class GatherLicenseTaskTest {
result.output.normalizeEol()
)
}

private fun String.normalizeEol() = replace(Regex("[\r\n]+"), "\n")

private fun runGradleBuild(gradleVersion: String, vararg arguments: String): BuildResult {
return gradleRunner
.withGradleVersion(gradleVersion)
.withProjectDir(projectDir.toFile())
.withArguments(*arguments)
.forwardOutput()
.build()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

package com.github.vlsi.gradle.license

import com.github.vlsi.gradle.BaseGradleTest
import org.gradle.api.JavaVersion
import org.gradle.testkit.runner.BuildResult
import org.gradle.testkit.runner.GradleRunner
Expand All @@ -27,36 +28,11 @@ import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.MethodSource
import java.nio.file.Path

class VerifyLicenseCompatibilityTaskTest {
companion object {
@JvmStatic
private fun gradleVersionAndSettings(): Iterable<Arguments> {
return mutableListOf<Arguments>().apply {
if (JavaVersion.current() <= JavaVersion.VERSION_14) {
add(Arguments.of("6.0", "// no extra settings"))
add(Arguments.of("6.1.1", "// no extra settings"))
}
add(Arguments.of("7.3", "// no extra settings"))
}
}
}

private val gradleRunner = GradleRunner.create().withPluginClasspath()

@TempDir
lateinit var projectDir: Path

fun Path.write(text: String) = this.toFile().writeText(text)

class VerifyLicenseCompatibilityTaskTest: BaseGradleTest() {
@ParameterizedTest
@MethodSource("gradleVersionAndSettings")
fun `licenseGathering works`(gradleVersion: String, extraSettings: String) {
projectDir.resolve("settings.gradle").write(
"""
rootProject.name = 'sample'
$extraSettings
"""
)
@MethodSource("disabledConfigurationCacheGradleVersionAndSettings")
fun `licenseGathering works`(testCase: TestCase) {
createSettings(testCase)
projectDir.resolve("build.gradle").write(
/* language=groovy */ """
import com.github.vlsi.gradle.license.GatherLicenseTask
Expand Down Expand Up @@ -112,7 +88,8 @@ class VerifyLicenseCompatibilityTaskTest {
)

val result =
runGradleBuild(gradleVersion, "verifyLicenses", "--print", "--quiet", "--stacktrace")
prepare(testCase, "verifyLicenses", "--print", "--quiet", "--stacktrace")
.build()
Assertions.assertEquals(
"""
ALLOW
Expand Down Expand Up @@ -203,15 +180,4 @@ class VerifyLicenseCompatibilityTaskTest {
result.output.normalizeEol().replace("texts\\", "texts/")
)
}

private fun String.normalizeEol() = replace(Regex("\r\n?"), "\n")

private fun runGradleBuild(gradleVersion: String, vararg arguments: String): BuildResult {
return gradleRunner
.withGradleVersion(gradleVersion)
.withProjectDir(projectDir.toFile())
.withArguments(*arguments)
.forwardOutput()
.build()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import javax.inject.Inject
import org.gradle.api.DefaultTask
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.TaskAction
import org.gradle.kotlin.dsl.property
import org.gradle.kotlin.dsl.the
Expand Down Expand Up @@ -81,6 +82,7 @@ abstract class SvnmuccTask @Inject constructor() : DefaultTask() {
return false
}

@Internal
protected val commandsFile = project.layout.buildDirectory.file("svnmucc/$name.txt")

@TaskAction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,10 @@ import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.MethodSource

class ChecksumFileTest : BaseGradleTest() {
companion object {
val isCI = System.getenv().containsKey("CI") || System.getProperties().containsKey("CI")

@JvmStatic
private fun gradleVersionAndSettings(): Iterable<Arguments> {
if (!isCI) {
// Use only the minimum supported Gradle version to make the test faster
return listOf(Arguments.arguments("8.1.1", ConfigurationCache.OFF))
}
return mutableListOf<Arguments>().apply {
add(Arguments.arguments("7.0", ConfigurationCache.OFF))
add(Arguments.arguments("7.5", ConfigurationCache.OFF))
add(Arguments.arguments("8.1.1", ConfigurationCache.OFF))
add(Arguments.arguments("8.14.1", ConfigurationCache.OFF))
}
}
}

@ParameterizedTest
@MethodSource("gradleVersionAndSettings")
fun previewSvnDist(gradleVersion: String, configurationCache: ConfigurationCache) {
enableConfigurationCache(gradleVersion, configurationCache)
@MethodSource("disabledConfigurationCacheGradleVersionAndSettings")
fun previewSvnDist(testCase: TestCase) {
createSettings(testCase)
projectDir.resolve("src/main/java/acme").toFile().mkdirs()
projectDir.resolve("src/main/java/acme/Main.java").write(
/* language=Java */
Expand Down Expand Up @@ -99,15 +81,15 @@ class ChecksumFileTest : BaseGradleTest() {
}
""".trimIndent()
)
prepare(gradleVersion, "previewSvnDist", "-i", "-Prc=1").build().let { result ->
prepare(testCase, "previewSvnDist", "-i", "-Prc=1").build().let { result ->
if (isCI) {
println(result.output)
}

assertChecksumFilePresent("First execution")
}

prepare(gradleVersion, "previewSvnDist", "-i", "-Prc=1").build().let { result ->
prepare(testCase, "previewSvnDist", "-i", "-Prc=1").build().let { result ->
if (isCI) {
println(result.output)
}
Expand All @@ -119,7 +101,7 @@ class ChecksumFileTest : BaseGradleTest() {
}

prepare(
gradleVersion,
testCase,
"cleanJarSha512",
"previewSvnDist",
"-x",
Expand Down
Loading
Loading