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]
