RFR: 7903935: --verify-exclude existence check misses tests with failing requires

Ludvig Janiuk lujaniuk at openjdk.org
Mon Jan 27 10:18:13 UTC 2025


On Tue, 21 Jan 2025 14:20:25 GMT, Ludvig Janiuk <lujaniuk at openjdk.org> wrote:

> The current implementation relies on
>   getResultsIterator
> which in turn calls into
>   TestResultTable.getIterator(filters)
> passing into jtharness. That seems to currently filter out tests that don't meet the local "requires" criteria. Thus we fail to collect all "existing" tests in to a set to compare with.
> 
> The fix seems to be to explicitly pass an empty list of filters into
>   TestResultTable.getIterator(filters)
> as this will make
>   TRT_Iterator.wouldAccept()
> accept every test.

As a way to test these changes on real-world data, I ran against the OpenJDK problemlist files. The following lists how many tests in each were listed as problematic:

test/lib-test/ProblemList.txt: 0
test/jaxp/ProblemList.txt: 0
test/docs/ProblemList.txt: 0
test/hotspot/jtreg/ProblemList-AotJdk.txt: 1
test/hotspot/jtreg/ProblemList.txt: 3
test/hotspot/jtreg/ProblemList-Virtual.txt: 0
test/hotspot/jtreg/ProblemList-Xcomp.txt: 0
test/hotspot/jtreg/ProblemList-zgc.txt: 14
test/jdk/ProblemList-AotJdk.txt: 0
test/jdk/ProblemList-zgc.txt: 0
test/jdk/ProblemList-shenandoah.txt: 0
test/jdk/ProblemList-Virtual.txt: 4
test/jdk/ProblemList.txt: 8
test/jdk/ProblemList-Xcomp.txt: 0
test/langtools/ProblemList.txt: 0

After a manual look at `test/hotspot/jtreg/ProblemList-zgc.txt`, it does look like it references a lot of tests that don't exist. These were:

serviceability/sa/ClhsdbFindPC.java#apa                       8307393   generic-all
serviceability/sa/ClhsdbLauncher.java                         8307393   generic-all
serviceability/sa/ClhsdbPmap.java                             8307393   generic-all
serviceability/sa/ClhsdbScanOops.java                         8307393   generic-all
serviceability/sa/LingeredAppSysProps.java                    8307393   generic-all
serviceability/sa/LingeredAppWithDefaultMethods.java          8307393   generic-all
serviceability/sa/LingeredAppWithEnum.java                    8307393   generic-all
serviceability/sa/LingeredAppWithInterface.java               8307393   generic-all
serviceability/sa/LingeredAppWithInvokeDynamic.java           8307393   generic-all
serviceability/sa/LingeredAppWithLock.java                    8307393   generic-all
serviceability/sa/LingeredAppWithNativeMethod.java            8307393   generic-all
serviceability/sa/LingeredAppWithRecComputation.java          8307393   generic-all
serviceability/sa/jmap-hprof/JMapHProfLargeHeapProc.java      8307393   generic-all
serviceability/sa/sadebugd/DebugdUtils.java                   8307393   generic-all

Indeed, manual sampling reveals these lines are invalid, e.g. because `ClhsdbFindPC.java` does not have a test with id `apa`, or because `serviceability/sa/LingeredAppWithInterface.java` is not a jtreg test at all (no `@test` comment).

-------------

PR Comment: https://git.openjdk.org/jtreg/pull/243#issuecomment-2615342921


More information about the jtreg-dev mailing list