You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit bf8cca7
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: TESTING.md
+34-3Lines changed: 34 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -59,7 +59,8 @@ The JaCoCo agent costs about 12% of test time (measured on `orcid-persistence`:
59
59
60
60
Run on 2026-09-05 against `4c802f0c13`, rebased on `origin/main` at `5c67777e9a`
61
61
(v3.0.54). Unit stage 3,597 tests, database stage 763, both green from a clean
62
-
tree. Re-verified against v3.23.10 on 2026-09-21; see the section after the table.
62
+
tree. Re-verified against v3.23.10 on 2026-09-21 and against v3.24.10 on 2026-10-14;
63
+
see the sections after the table.
63
64
64
65
Parity with `main` is not a claim here, it is a table. Each row is a proof `main`
65
66
holds by running a real delegator, manager and security manager over fixtures.
@@ -105,7 +106,7 @@ assumed. Re-run on 2026-09-05 against `fd4dc071dd`:
105
106
| Database stage, clean tree | 763 green |
106
107
| Web modules built alone, as CI does | 383, 1,232, 405 green |
107
108
| First three mutations above, control first | each red on its own test, production restored byte-identically |
108
-
|`mockito-core` in all seven WARs | 592KB present in every one before, absent from every one after |
109
+
|`mockito-core` in all seven WARs | 592KB present in every one before, absent from every one after, with its `objenesis`|
109
110
|`orcid-core` test jar contents | the two helper classes, no test resources |
110
111
| Release-path build, `-Dmaven.test.skip`, jar deleted first | green, jar reattached with both classes |
111
112
|`actionlint`, `db_tests` matrix drift | both clean |
@@ -172,6 +173,36 @@ Two things `main` changed that are worth knowing:
172
173
version drove no longer exists, so there is nothing to port; the filtering belongs
173
174
in an `AffiliationsManagerReadOnly` database test. Worth a ticket.
174
175
176
+
### Re-verified against v3.24.10
177
+
178
+
`main` moved 71 commits after the 2026-09-24 merge, among them PD-14292 (the
179
+
contributor email is withheld on reads), PD-13512 (v2.1 email flags) and PD-14448.
180
+
Merged at `546dbc38eb`, then re-run from a clean tree on 2026-10-14 against `main`
181
+
at `ffc60febf3`, sequentially, since two Spring test JVMs on one machine contend
182
+
for ehcache's lock in the temp directory:
183
+
184
+
| Check | Result |
185
+
| --- | --- |
186
+
|`main`, whole suite | 4,687 green |
187
+
| Unit stage | 4,098 green |
188
+
| Database stage | 742 green |
189
+
| Both stages unfiltered, `-P all-tests`| 4,840 green |
190
+
| Every test `main` runs, by class and method | 4,678 run under the same name, 4 moved class within their module, 5 mapped in the pull request |
191
+
| All seven WARs against `main`'s | only `mockito-core` and `objenesis` gone, and `SecurityContextTestUtils` from the orcid-core jar; every other file byte-identical |
192
+
| 13 production mutations, four rows of the table above among them | every one red on at least one test; production restored byte-identically |
193
+
|`actionlint`, `db_stage_drift`, its negative cases | clean; drift fails on a multi-line category, and the setup parity check fails on any difference |
194
+
195
+
Two things this pass found and fixed:
196
+
197
+
-**A proof had been lost.** A token holding `/email/read-private` reveals every
198
+
email and nothing else. `main` proved it end to end in the member delegator read
199
+
tests, and their mocked versions only restated their stubs. It is now proved in
200
+
`OrcidSecurityManager_{Person,FullRecord}Test`, v2 and v3, against the real
201
+
security manager. Mutating the rule turns those tests red on this branch, and on
202
+
`main` it turns the two end-to-end tests red, which is how the loss was confirmed.
203
+
-**The category split had switched off Mockito's unused-stub check in CI.** See
204
+
`OrcidMockitoJUnitRunner` under "Writing a unit test".
205
+
175
206
## The database stage
176
207
177
208
Both stages run in full on every push. The unit stage is eleven parallel jobs,
@@ -180,7 +211,7 @@ marked `@Category(DatabaseTest.class)`. The split exists so the unit stage can
180
211
report in a couple of minutes without waiting on a database, not so that work
181
212
can be skipped -- nothing selects which tests to run based on what changed.
182
213
183
-
The other four reactor modules are absent from the database matrix because they
214
+
The other four modules that have tests are absent from the database matrix because they
184
215
hold no database test, and each would pay about 100s of setup to run nothing.
185
216
That is the one omission, and `db_stage_drift` guards it: it reads the matrix
186
217
out of this workflow and the module list out of the root pom, and fails the
0 commit comments