xiangfu0 opened a new pull request, #19651:
URL: https://github.com/apache/pinot/pull/19651

   ## Problem
   
   #19633 replaced the explicit `surefire-testng` provider with the JUnit 
Platform provider. Under that provider **a leading `**/` in a Surefire include 
no longer matches zero directories**, so every 
`**/org/apache/pinot/integration/tests/...` pattern in 
`pinot-integration-tests/pom.xml` stopped matching anything.
   
   The patterns are matched against the class path relative to the test classes 
directory, so `org/apache/...` already starts at the root and the `**/` has 
nothing left to consume. Patterns ending in `/**` take a different code path 
and kept working, which is why `**/org/apache/pinot/server/realtime/**` and the 
`**/suites/*Suite.java` entries were unaffected — and why the lanes still 
looked like they were doing something.
   
   Measured on `pinot-spi` with single-include probe profiles:
   
   | include pattern | tests selected |
   | --- | --- |
   | `**/org/apache/pinot/spi/utils/ByteArrayTest.java` | **0** |
   | `**/org/apache/pinot/spi/utils/B*Test.java` | **0** |
   | `**/org/apache/pinot/spi/utils/**/ByteArrayTest.java` | **0** |
   | `**/apache/pinot/spi/utils/ByteArrayTest.java` | 5 — `**/` consumes `org` |
   | `**/utils/ByteArrayTest.java` | 5 |
   | `**/org/apache/pinot/spi/utils/**` | 46 |
   | `org/apache/pinot/spi/utils/B*Test.java` | 10 |
   | `org/apache/pinot/spi/utils/*Test.java` | the 19 direct classes |
   
   ## Impact
   
   Only the named `@Suite` executions still ran. Comparing the last master run 
before the change (`cfd14629af`) with the one after (`33d88e480b`):
   
   | lane | before | after |
   | --- | --- | --- |
   | set-1 lane-a | 25 classes | **8** (the two suites only) |
   | set-1 lane-b | 11 classes | 66 (suites only; 60 of them `custom/`) |
   | set-2 lane-a | 18 classes | **0** |
   | set-2 lane-b | 31 classes | **1** (only the `server/realtime` `/**` 
pattern) |
   
   Integration test set 2 went from about 37 minutes to 8 minutes and reported 
success both times.
   
   ## Fix
   
   Every include and exclude is now written relative to the test classes 
directory with no `**/` prefix, and the profile comment records the constraint 
so the prefix does not come back.
   
   This is a pure selection fix — no test is added, removed or changed — so it 
restores exactly the set that ran before #19633.
   
   ## Verification
   
   - The probe table above establishes which pattern shapes select what.
   - `help:effective-pom` on each lane confirms the resulting include lists; 
`integration-tests-set-2-lane-a`, which was selecting nothing, is back to 
`O*`/`P*`/`Q*`/`R*`.
   - Static analysis of the patterns against the test sources gives per-lane 
class counts of 28 / 75 / 18 / 30, against the pre-regression run's 25 / 11 / 
18 / 31.
   
   ## Scope
   
   Only `pinot-integration-tests/pom.xml` was affected. Everywhere else that 
configures Surefire patterns uses `**/` followed by a single segment 
(`**/suites/ControllerStatefulSuite.java`, `**/*IT.java`), which still matches, 
and the unit test jobs kept their usual runtime.
   
   A follow-up covers the subpackages that these single-level globs never 
matched (`logicaltable/`, `multicluster/`, `legacy/`), which is a separate 
concern from this regression.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to