Skip to content

Commit 2828ae2

Browse files
authored
Split JUnit test job
1 parent dca2c27 commit 2828ae2

11 files changed

Lines changed: 169 additions & 48 deletions

.azure/azure-pipelines-daily.yml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ jobs:
2222

2323
- job: canary_jobs
2424
dependsOn:
25-
- junit_jdk25
25+
- junit_part1_jdk25
26+
- junit_part2_jdk25
2627
- nonjunit_jdk25
2728
- inference_part1_jdk25
2829
- inference_part2_jdk25
@@ -37,7 +38,8 @@ jobs:
3738
- job: junit_jdk11
3839
dependsOn:
3940
- canary_jobs
40-
- junit_jdk25
41+
- junit_part1_jdk25
42+
- junit_part2_jdk25
4143
pool:
4244
vmImage: 'ubuntu-latest'
4345
container: mdernst/cf-ubuntu-jdk11:latest
@@ -50,7 +52,8 @@ jobs:
5052
- job: junit_jdk17
5153
dependsOn:
5254
- canary_jobs
53-
- junit_jdk25
55+
- junit_part1_jdk25
56+
- junit_part2_jdk25
5457
pool:
5558
vmImage: 'ubuntu-latest'
5659
container: mdernst/cf-ubuntu-jdk17:latest
@@ -63,7 +66,8 @@ jobs:
6366
- job: junit_jdk21
6467
dependsOn:
6568
- canary_jobs
66-
- junit_jdk25
69+
- junit_part1_jdk25
70+
- junit_part2_jdk25
6771
pool:
6872
vmImage: 'ubuntu-latest'
6973
container: mdernst/cf-ubuntu-jdk21:latest
@@ -73,16 +77,26 @@ jobs:
7377
fetchDepth: 25
7478
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=21 && ./checker/bin-devel/test-cftests-junit.sh
7579
displayName: test-cftests-junit.sh
76-
- job: junit_jdk25
80+
- job: junit_part1_jdk25
7781
pool:
7882
vmImage: 'ubuntu-latest'
7983
container: mdernst/cf-ubuntu-jdk25:latest
8084
timeoutInMinutes: 70
8185
steps:
8286
- checkout: self
8387
fetchDepth: 25
84-
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=25 && ./checker/bin-devel/test-cftests-junit.sh
85-
displayName: test-cftests-junit.sh
88+
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=25 && ./checker/bin-devel/test-cftests-junit.sh part1
89+
displayName: test-cftests-junit.sh part1
90+
- job: junit_part2_jdk25
91+
pool:
92+
vmImage: 'ubuntu-latest'
93+
container: mdernst/cf-ubuntu-jdk25:latest
94+
timeoutInMinutes: 70
95+
steps:
96+
- checkout: self
97+
fetchDepth: 25
98+
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=25 && ./checker/bin-devel/test-cftests-junit.sh part2
99+
displayName: test-cftests-junit.sh part2
86100

87101
- job: nonjunit_jdk11
88102
dependsOn:

.azure/azure-pipelines-daily.yml.m4

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ jobs:
2525

2626
- job: canary_jobs
2727
dependsOn:
28-
- junit_jdk[]canary_version
28+
- junit_part1_jdk[]canary_version
29+
- junit_part2_jdk[]canary_version
2930
- nonjunit_jdk[]canary_version
3031
- inference_part1_jdk[]canary_version
3132
- inference_part2_jdk[]canary_version
@@ -40,7 +41,7 @@ jobs:
4041
junit_job(11)
4142
junit_job(17)
4243
junit_job(21)
43-
junit_job(25)
44+
junit_jobs(25)
4445

4546
nonjunit_job(11)
4647
nonjunit_job(17)

.azure/azure-pipelines.yml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ jobs:
2121

2222
- job: canary_jobs
2323
dependsOn:
24-
- junit_jdk25
24+
- junit_part1_jdk25
25+
- junit_part2_jdk25
2526
- nonjunit_jdk25
2627
- inference_part1_jdk25
2728
- inference_part2_jdk25
@@ -38,7 +39,8 @@ jobs:
3839
- job: junit_jdk11
3940
dependsOn:
4041
- canary_jobs
41-
- junit_jdk25
42+
- junit_part1_jdk25
43+
- junit_part2_jdk25
4244
pool:
4345
vmImage: 'ubuntu-latest'
4446
container: mdernst/cf-ubuntu-jdk11:latest
@@ -51,7 +53,8 @@ jobs:
5153
- job: junit_jdk17
5254
dependsOn:
5355
- canary_jobs
54-
- junit_jdk25
56+
- junit_part1_jdk25
57+
- junit_part2_jdk25
5558
pool:
5659
vmImage: 'ubuntu-latest'
5760
container: mdernst/cf-ubuntu-jdk17:latest
@@ -64,7 +67,8 @@ jobs:
6467
- job: junit_jdk21
6568
dependsOn:
6669
- canary_jobs
67-
- junit_jdk25
70+
- junit_part1_jdk25
71+
- junit_part2_jdk25
6872
pool:
6973
vmImage: 'ubuntu-latest'
7074
container: mdernst/cf-ubuntu-jdk21:latest
@@ -74,16 +78,26 @@ jobs:
7478
fetchDepth: 25
7579
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=21 && ./checker/bin-devel/test-cftests-junit.sh
7680
displayName: test-cftests-junit.sh
77-
- job: junit_jdk25
81+
- job: junit_part1_jdk25
7882
pool:
7983
vmImage: 'ubuntu-latest'
8084
container: mdernst/cf-ubuntu-jdk25:latest
8185
timeoutInMinutes: 70
8286
steps:
8387
- checkout: self
8488
fetchDepth: 25
85-
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=25 && ./checker/bin-devel/test-cftests-junit.sh
86-
displayName: test-cftests-junit.sh
89+
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=25 && ./checker/bin-devel/test-cftests-junit.sh part1
90+
displayName: test-cftests-junit.sh part1
91+
- job: junit_part2_jdk25
92+
pool:
93+
vmImage: 'ubuntu-latest'
94+
container: mdernst/cf-ubuntu-jdk25:latest
95+
timeoutInMinutes: 70
96+
steps:
97+
- checkout: self
98+
fetchDepth: 25
99+
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=25 && ./checker/bin-devel/test-cftests-junit.sh part2
100+
displayName: test-cftests-junit.sh part2
87101

88102
- job: nonjunit_jdk25
89103
pool:

.azure/azure-pipelines.yml.m4

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ jobs:
2424

2525
- job: canary_jobs
2626
dependsOn:
27-
- junit_jdk[]canary_version
27+
- junit_part1_jdk[]canary_version
28+
- junit_part2_jdk[]canary_version
2829
- nonjunit_jdk[]canary_version
2930
- inference_part1_jdk[]canary_version
3031
- inference_part2_jdk[]canary_version

.azure/defs.m4

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ define([junit_job], [dnl
66
- job: junit_jdk$1
77
ifelse($1,canary_version,,[ dependsOn:
88
- canary_jobs
9-
- junit_jdk[]canary_version
9+
- junit_part1_jdk[]canary_version
10+
- junit_part2_jdk[]canary_version
1011
])dnl
1112
pool:
1213
vmImage: 'ubuntu-latest'
@@ -18,6 +19,36 @@ ifelse($1,canary_version,,[ dependsOn:
1819
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=$1 && ./checker/bin-devel/test-cftests-junit.sh
1920
displayName: test-cftests-junit.sh])dnl
2021
dnl
22+
define([junit_jobs], [dnl
23+
- job: junit_part1_jdk$1
24+
ifelse($1,canary_version,,[ dependsOn:
25+
- canary_jobs
26+
- junit_part1_jdk[]canary_version
27+
])dnl
28+
pool:
29+
vmImage: 'ubuntu-latest'
30+
container: mdernst/cf-ubuntu-jdk$1[]docker_testing:latest
31+
timeoutInMinutes: 70
32+
steps:
33+
- checkout: self
34+
fetchDepth: 25
35+
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=$1 && ./checker/bin-devel/test-cftests-junit.sh part1
36+
displayName: test-cftests-junit.sh part1
37+
- job: junit_part2_jdk$1
38+
ifelse($1,canary_version,,[ dependsOn:
39+
- canary_jobs
40+
- junit_part2_jdk[]canary_version
41+
])dnl
42+
pool:
43+
vmImage: 'ubuntu-latest'
44+
container: mdernst/cf-ubuntu-jdk$1[]docker_testing:latest
45+
timeoutInMinutes: 70
46+
steps:
47+
- checkout: self
48+
fetchDepth: 25
49+
- bash: export ORG_GRADLE_PROJECT_jdkTestVersion=$1 && ./checker/bin-devel/test-cftests-junit.sh part2
50+
displayName: test-cftests-junit.sh part2])dnl
51+
dnl
2152
define([nonjunit_job], [dnl
2253
- job: nonjunit_jdk$1
2354
ifelse($1,canary_version,,[ dependsOn:

.azure/jobs.m4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
junit_job(11)
22
junit_job(17)
33
junit_job(21)
4-
junit_job(25)
4+
junit_jobs(25)
55

66
nonjunit_job(canary_version)
77

.circleci/config.yml

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
command: export ORG_GRADLE_PROJECT_jdkTestVersion=21 && ./checker/bin-devel/test-cftests-junit.sh
8383
no_output_timeout: "30m"
8484

85-
junit_jdk25:
85+
junit_part1_jdk25:
8686
docker:
8787
- image: 'mdernst/cf-ubuntu-jdk25'
8888
resource_class: large
@@ -101,8 +101,30 @@ jobs:
101101
paths:
102102
- .git
103103
- run:
104-
name: test-cftests-junit.sh
105-
command: export ORG_GRADLE_PROJECT_jdkTestVersion=25 && ./checker/bin-devel/test-cftests-junit.sh
104+
name: test-cftests-junit.sh part1
105+
command: export ORG_GRADLE_PROJECT_jdkTestVersion=25 && ./checker/bin-devel/test-cftests-junit.sh part1
106+
no_output_timeout: "30m"
107+
junit_part2_jdk25:
108+
docker:
109+
- image: 'mdernst/cf-ubuntu-jdk25'
110+
resource_class: large
111+
environment:
112+
CIRCLE_COMPARE_URL: << pipeline.project.git_url >>/compare/<< pipeline.git.base_revision >>..<<pipeline.git.revision>>
113+
TERM: dumb
114+
steps:
115+
- restore_cache:
116+
keys:
117+
- &source-cache source-v1-{{ .Branch }}-{{ .Revision }}
118+
- 'source-v1-{{ .Branch }}-'
119+
- source-v1-
120+
- checkout
121+
- save_cache:
122+
key: *source-cache
123+
paths:
124+
- .git
125+
- run:
126+
name: test-cftests-junit.sh part2
127+
command: export ORG_GRADLE_PROJECT_jdkTestVersion=25 && ./checker/bin-devel/test-cftests-junit.sh part2
106128
no_output_timeout: "30m"
107129

108130
nonjunit_jdk25:
@@ -431,29 +453,14 @@ workflows:
431453
jobs:
432454
- canary_jobs:
433455
requires:
434-
- junit_jdk25
456+
- junit_part1_jdk25
457+
- junit_part2_jdk25
435458
- nonjunit_jdk25
436459
- typecheck_part1_jdk25
437460
- typecheck_part2_jdk25
438461
- misc_jdk25
439462
- misc_jdk25
440463

441-
- junit_jdk11:
442-
requires:
443-
- canary_jobs
444-
- junit_jdk25
445-
446-
- junit_jdk17:
447-
requires:
448-
- canary_jobs
449-
- junit_jdk25
450-
451-
- junit_jdk21:
452-
requires:
453-
- canary_jobs
454-
- junit_jdk25
455-
456-
- junit_jdk25
457464
- nonjunit_jdk25
458465
- misc_jdk11:
459466
requires:

.circleci/config.yml.m4

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
# Only proceed to other jobs if canary_jobs passes.
1010
canary_jobs:
1111
docker:
12-
- image: 'cimg/base:2025.10'
12+
- image: 'cimg/base:2026.03'
1313
resource_class: small
1414
environment:
1515
CIRCLE_COMPARE_URL: << pipeline.project.git_url >>/compare/<< pipeline.git.base_revision >>..<<pipeline.git.revision>>
@@ -26,17 +26,14 @@ workflows:
2626
jobs:
2727
- canary_jobs:
2828
requires:
29-
- junit_jdk[]canary_version
29+
- junit_part1_jdk[]canary_version
30+
- junit_part2_jdk[]canary_version
3031
- nonjunit_jdk[]canary_version
3132
- typecheck_part1_jdk[]canary_version
3233
- typecheck_part2_jdk[]canary_version
3334
- misc_jdk[]canary_version
3435
- misc_jdk[]latest_version
3536

36-
job_dependences(11, junit)
37-
job_dependences(17, junit)
38-
job_dependences(21, junit)
39-
job_dependences(25, junit)
4037
job_dependences(canary_version, nonjunit)
4138
job_dependences(11, misc)
4239
job_dependences(17, misc)
@@ -45,6 +42,7 @@ job_dependences(25, misc)
4542
job_dependences(canary_version, typecheck_part1)
4643
job_dependences(canary_version, typecheck_part2)
4744

45+
ifelse([The following jobs are not canary jobs, so they run after canary jobs succeed.])dnl
4846
job_dependences_not_in_canary(canary_version, inference_part1)
4947
job_dependences_not_in_canary(canary_version, inference_part2)
5048
job_dependences_not_in_canary(canary_version, daikon_part1)

.circleci/defs.m4

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,21 @@ circleci_boilerplate($1,)
3535
no_output_timeout: "30m"
3636
])dnl
3737
dnl
38+
define([junit_jobs], [dnl
39+
junit_part1_jdk$1:
40+
circleci_boilerplate($1,)
41+
- run:
42+
name: test-cftests-junit.sh part1
43+
command: export ORG_GRADLE_PROJECT_jdkTestVersion=$1 && ./checker/bin-devel/test-cftests-junit.sh part1
44+
no_output_timeout: "30m"
45+
junit_part2_jdk$1:
46+
circleci_boilerplate($1,)
47+
- run:
48+
name: test-cftests-junit.sh part2
49+
command: export ORG_GRADLE_PROJECT_jdkTestVersion=$1 && ./checker/bin-devel/test-cftests-junit.sh part2
50+
no_output_timeout: "30m"
51+
])dnl
52+
dnl
3853
define([nonjunit_job], [dnl
3954
nonjunit_jdk$1:
4055
circleci_boilerplate($1,)

build.gradle

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1270,6 +1270,24 @@ subprojects {
12701270
}
12711271
}
12721272

1273+
tasks.register("junitPart1") {
1274+
description = "Run part 1 of the Checker Framework JUnit tests"
1275+
group = "Verification"
1276+
subprojects {
1277+
// Every "test" task except :checker:test.
1278+
if (!it.name.contentEquals("checker")) {
1279+
dependsOn(it.tasks.named("test"))
1280+
}
1281+
}
1282+
dependsOn(":test")
1283+
}
1284+
1285+
tasks.register("junitPart2") {
1286+
description = "Run part 2 of the Checker Framework JUnit tests"
1287+
group = "Verification"
1288+
dependsOn(":checker:test")
1289+
}
1290+
12731291
// The `assembleForJavac` task is faster than the `assemble` task, if you only
12741292
// care about running `javac`.
12751293
// The assemble task also produces Javadoc jars, because its purpose is to build

0 commit comments

Comments
 (0)