diff --git a/build-logic/src/main/kotlin/com/ibm/wala/gradle/java.gradle.kts b/build-logic/src/main/kotlin/com/ibm/wala/gradle/java.gradle.kts index 379353c934..7045937a69 100644 --- a/build-logic/src/main/kotlin/com/ibm/wala/gradle/java.gradle.kts +++ b/build-logic/src/main/kotlin/com/ibm/wala/gradle/java.gradle.kts @@ -33,15 +33,22 @@ configurations { named("javadocClasspath").get().extendsFrom(compileClasspath.get()) } +fun findLibrary(alias: String) = + rootProject.the().named("libs").findLibrary(alias).get() + dependencies { - "ecj"(rootProject.the().named("libs").findLibrary("eclipse-ecj").get()) - "errorprone"( - rootProject - .the() - .named("libs") - .findLibrary("errorprone-core") - .get()) + "ecj"(findLibrary("eclipse-ecj")) + "errorprone"(findLibrary("errorprone-core")) "javadocSource"(sourceSets.main.get().allJava) + + testFixturesImplementation(platform(findLibrary("junit-bom"))) + testFixturesImplementation(findLibrary("junit")) + testFixturesImplementation(findLibrary("junit-jupiter-api")) + + testImplementation(platform(findLibrary("junit-bom"))) + testImplementation(findLibrary("junit")) + testImplementation(findLibrary("junit-jupiter-api")) + testRuntimeOnly(findLibrary("junit-vintage-engine")) } tasks.withType().configureEach { @@ -103,6 +110,8 @@ configurations { the().synchronizationTasks("processTestResources") tasks.named("test") { + useJUnitPlatform() + include("**/*Test.class") include("**/*TestCase.class") include("**/*Tests.class") diff --git a/cast/build.gradle.kts b/cast/build.gradle.kts index 1049a234b1..23c5870fe8 100644 --- a/cast/build.gradle.kts +++ b/cast/build.gradle.kts @@ -46,7 +46,6 @@ dependencies { castJsPackageListDirectory( project(mapOf("path" to ":cast:js", "configuration" to "packageListDirectory"))) javadocClasspath(projects.cast.js) - testImplementation(libs.junit) testRuntimeOnly(testFixtures(projects.core)) xlatorTestSharedLibrary(project("xlator_test")) } diff --git a/cast/java/build.gradle.kts b/cast/java/build.gradle.kts index 873ef73d04..c76cf5e4be 100644 --- a/cast/java/build.gradle.kts +++ b/cast/java/build.gradle.kts @@ -10,7 +10,6 @@ dependencies { implementation(projects.core) implementation(projects.shrike) implementation(projects.util) - testFixturesImplementation(libs.junit) testFixturesImplementation(projects.cast) testFixturesImplementation(projects.core) } diff --git a/cast/java/ecj/build.gradle.kts b/cast/java/ecj/build.gradle.kts index f0c333d48d..6c93cae895 100644 --- a/cast/java/ecj/build.gradle.kts +++ b/cast/java/ecj/build.gradle.kts @@ -25,7 +25,6 @@ dependencies { runSourceDirectory( project( mapOf("path" to ":cast:java:test:data", "configuration" to "testJavaSourceDirectory"))) - testImplementation(libs.junit) testImplementation(testFixtures(projects.cast.java)) testRuntimeOnly(testFixtures(projects.core)) } diff --git a/cast/js/build.gradle.kts b/cast/js/build.gradle.kts index 61ce46db8b..fc30e207f2 100644 --- a/cast/js/build.gradle.kts +++ b/cast/js/build.gradle.kts @@ -16,10 +16,8 @@ dependencies { implementation(projects.shrike) implementation(projects.util) javadocClasspath(projects.cast.js.rhino) - testFixturesImplementation(libs.junit) testFixturesImplementation(testFixtures(projects.cast)) testFixturesImplementation(testFixtures(projects.core)) - testImplementation(libs.junit) testImplementation(testFixtures(projects.cast)) testImplementation(testFixtures(projects.core)) } diff --git a/cast/js/nodejs/build.gradle.kts b/cast/js/nodejs/build.gradle.kts index d03fed4068..e81a871b1e 100644 --- a/cast/js/nodejs/build.gradle.kts +++ b/cast/js/nodejs/build.gradle.kts @@ -13,7 +13,6 @@ dependencies { implementation(projects.cast.js.rhino) implementation(projects.core) implementation(projects.util) - testImplementation(libs.junit) testRuntimeOnly(testFixtures(projects.core)) } diff --git a/cast/js/rhino/build.gradle.kts b/cast/js/rhino/build.gradle.kts index dc28731d7e..7a9d6aad6d 100644 --- a/cast/js/rhino/build.gradle.kts +++ b/cast/js/rhino/build.gradle.kts @@ -16,10 +16,8 @@ dependencies { implementation(projects.util) testImplementation(libs.gson) testImplementation(libs.hamcrest) - testImplementation(libs.junit) testImplementation(testFixtures(projects.cast)) testImplementation(testFixtures(projects.cast.js)) - testFixturesImplementation(libs.junit) testFixturesImplementation(testFixtures(projects.cast)) testFixturesImplementation(testFixtures(projects.cast.js)) } diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 54392228f0..cfdcc8659e 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -58,9 +58,7 @@ dependencies { } api(projects.util) { because("public interface CallGraph extends interface NumberedGraph") } testFixturesImplementation(libs.ant) - testFixturesImplementation(libs.junit) testImplementation(libs.hamcrest) - testImplementation(libs.junit) testRuntimeOnly(sourceSets["testSubjects"].output.classesDirs) // add the testSubjects source files to enable SourceMapTest to pass testRuntimeOnly(files(sourceSets["testSubjects"].java.srcDirs)) diff --git a/dalvik/build.gradle.kts b/dalvik/build.gradle.kts index ed810068bc..33d8d8f819 100644 --- a/dalvik/build.gradle.kts +++ b/dalvik/build.gradle.kts @@ -92,7 +92,6 @@ dependencies { sampleCupSources(libs.java.cup.map { "$it:sources" }) testImplementation(libs.android.tools) - testImplementation(libs.junit) testImplementation(libs.dexlib2) testImplementation(projects.core) testImplementation(projects.dalvik) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e086ce39f7..75aeef38b6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,6 +30,9 @@ jericho-html = "net.htmlparser.jericho:jericho-html:3.2" json = "org.json:json:20230618" jspecify = "org.jspecify:jspecify:0.3.0" junit = "junit:junit:4.13.2" +junit-bom = "org.junit:junit-bom:5.9.3" +junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api" } +junit-vintage-engine = { module = "org.junit.vintage:junit-vintage-engine" } nullaway = "com.uber.nullaway:nullaway:0.10.10" rhino = "org.mozilla:rhino:1.7.14" slf4j-api = "org.slf4j:slf4j-api:2.0.6" diff --git a/ide/jdt/test/build.gradle.kts b/ide/jdt/test/build.gradle.kts index e3715129fc..b6e5821e11 100644 --- a/ide/jdt/test/build.gradle.kts +++ b/ide/jdt/test/build.gradle.kts @@ -15,7 +15,6 @@ walaEclipseMavenCentral { dependencies { testImplementation(libs.eclipse.osgi) - testImplementation(libs.junit) testImplementation(projects.cast) testImplementation(projects.cast.java) testImplementation(projects.cast.java.ecj) diff --git a/ide/jsdt/tests/build.gradle.kts b/ide/jsdt/tests/build.gradle.kts index d683d55874..d4aa582750 100644 --- a/ide/jsdt/tests/build.gradle.kts +++ b/ide/jsdt/tests/build.gradle.kts @@ -16,7 +16,6 @@ dependencies { testImplementation(libs.eclipse.osgi) testImplementation(libs.eclipse.wst.jsdt.core) testImplementation(libs.javax.annotation.api) - testImplementation(libs.junit) testImplementation(projects.cast) testImplementation(projects.cast.js) testImplementation(projects.cast.js.rhino) diff --git a/ide/tests/build.gradle.kts b/ide/tests/build.gradle.kts index d8965b60e5..efb3298d58 100644 --- a/ide/tests/build.gradle.kts +++ b/ide/tests/build.gradle.kts @@ -45,7 +45,6 @@ dependencies { ifdsExplorerExampleClasspath(sourceSets.test.map { it.runtimeClasspath }) ifdsExplorerExampleClasspath( project(mapOf("path" to ":core", "configuration" to "collectTestDataJar"))) - testImplementation(libs.junit) testImplementation(projects.core) testImplementation(projects.ide) testImplementation(projects.util) diff --git a/util/build.gradle.kts b/util/build.gradle.kts index 9c8ed1dd12..181e912cf4 100644 --- a/util/build.gradle.kts +++ b/util/build.gradle.kts @@ -10,7 +10,6 @@ dependencies { compileOnly(libs.jspecify) javadocClasspath(projects.core) testImplementation(libs.hamcrest) - testImplementation(libs.junit) testRuntimeOnly(testFixtures(projects.core)) }