forked from DataDog/dd-trace-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-suites.gradle
More file actions
79 lines (71 loc) · 2.39 KB
/
test-suites.gradle
File metadata and controls
79 lines (71 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import org.gradle.api.plugins.jvm.JvmTestSuite
ext.addTestSuiteExtendingForDir = { String testSuiteName, String parentSuiteName, String dirName ->
testing {
suites {
register(testSuiteName, JvmTestSuite) {
sources {
java {
srcDirs = ["src/$dirName/java"]
}
resources {
srcDirs = ["src/$dirName/resources"]
}
if (project.plugins.hasPlugin('groovy')) {
groovy {
srcDirs = ["src/$dirName/groovy"]
}
}
if (project.plugins.hasPlugin('kotlin')) {
kotlin {
srcDirs = ["src/$dirName/kotlin"]
}
}
if (project.plugins.hasPlugin('scala')) {
scala {
srcDirs = ["src/$dirName/scala"]
}
}
}
}
}
}
configurations {
def extendConf = { suffix ->
def config = named("${testSuiteName}${suffix}")
def parentConfig = named("${parentSuiteName}${suffix}")
if (parentConfig.present) {
config.configure {
extendsFrom(parentConfig.get())
}
}
if (testSuiteName ==~ /.*ForkedTest\z/) {
def nonForkedBaseConfName = testSuiteName - ~/Forked/
def nonForkedConfig = maybeCreate("${nonForkedBaseConfName}${suffix}")
config.configure {
extendsFrom(nonForkedConfig)
}
}
}
extendConf('CompileOnly')
extendConf('Implementation')
extendConf('RuntimeOnly')
extendConf('AnnotationProcessor')
}
tasks.register("${testSuiteName}Jar", Jar) {
dependsOn(tasks.named("${testSuiteName}Classes"))
from(sourceSets.named(testSuiteName).map { it.output })
archiveClassifier = testSuiteName
}
// The project dependency definition cannot sit inside previous blocks. As of Gradle 8.8, configurations cannot be mutated after they have been used as part of the dependency graph.
// See: https://docs.gradle.org/current/userguide/upgrading_version_8.html#mutate_configuration_after_locking
// And related issue: https://github.com/gradle/gradle/issues/28867
project.dependencies {
"${testSuiteName}Implementation"(project(project.path))
}
}
ext.addTestSuiteForDir = { testSuiteName, dirName ->
ext.addTestSuiteExtendingForDir(testSuiteName, 'test', dirName)
}
ext.addTestSuite = { testSuiteName ->
ext.addTestSuiteForDir(testSuiteName, testSuiteName)
}