blob: 0bb61a54d68673f872f61273d55fede195e537ff [file] [log] [blame]
plugins {
`java-library-conventions`
`junit4-compatibility`
`testing-conventions`
`java-test-fixtures`
groovy
}
description = "JUnit Vintage Engine"
dependencies {
api(platform(projects.junitBom))
api(projects.junitPlatformEngine)
api(libs.junit4)
compileOnlyApi(libs.apiguardian)
testFixturesApi(platform(libs.groovy2.bom))
testFixturesApi(libs.spock1)
testFixturesImplementation(projects.junitPlatformRunner)
testImplementation(projects.junitPlatformLauncher)
testImplementation(projects.junitPlatformSuiteEngine)
testImplementation(projects.junitPlatformTestkit)
osgiVerification(projects.junitPlatformLauncher)
}
tasks {
compileTestFixturesGroovy {
javaLauncher.set(project.the<JavaToolchainService>().launcherFor {
// Groovy 2.x (used for Spock tests) does not support current JDKs
languageVersion.set(JavaLanguageVersion.of(8))
})
}
jar {
bundle {
val junit4Min = libs.versions.junit4Min.get()
bnd("""
# Import JUnit4 packages with a version
Import-Package: \
${extra["importAPIGuardian"]},\
junit.runner;version="[${junit4Min},5)",\
org.junit;version="[${junit4Min},5)",\
org.junit.experimental.categories;version="[${junit4Min},5)",\
org.junit.internal.builders;version="[${junit4Min},5)",\
org.junit.platform.commons.logging;status=INTERNAL,\
org.junit.runner.*;version="[${junit4Min},5)",\
org.junit.runners.model;version="[${junit4Min},5)",\
*
Provide-Capability:\
org.junit.platform.engine;\
org.junit.platform.engine='junit-vintage';\
version:Version="${'$'}{version_cleanup;${project.version}}"
Require-Capability:\
org.junit.platform.launcher;\
filter:='(&(org.junit.platform.launcher=junit-platform-launcher)(version>=${'$'}{version_cleanup;${rootProject.property("platformVersion")!!}})(!(version>=${'$'}{versionmask;+;${'$'}{version_cleanup;${rootProject.property("platformVersion")!!}}})))';\
effective:=active
""")
}
}
val testWithoutJUnit4 by registering(Test::class) {
(options as JUnitPlatformOptions).apply {
includeTags("missing-junit4")
}
setIncludes(listOf("**/JUnit4VersionCheckTests.class"))
classpath = classpath.filter {
!it.name.startsWith("junit-4")
}
}
withType<Test>().matching { it.name != testWithoutJUnit4.name }.configureEach {
(options as JUnitPlatformOptions).apply {
excludeTags("missing-junit4")
}
}
withType<Test>().configureEach {
// Workaround for Groovy 2.5
jvmArgs("--add-opens", "java.base/java.lang=ALL-UNNAMED")
jvmArgs("--add-opens", "java.base/java.util=ALL-UNNAMED")
}
check {
dependsOn(testWithoutJUnit4)
}
}