-
Notifications
You must be signed in to change notification settings - Fork 171
8208655: use JTreg skipped status in hotspot tests #387
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
👋 Welcome back andrew! A progress list of the required criteria for merging this PR into |
|
This backport pull request has now been updated with issue from the original commit. |
Webrevs
|
|
Setting |
…va.lang.ClassNotFoundException: test.Empty
|
/issue add 8023735,8208701,8208706,8313410,8129355,8186095,8183503 |
|
@gnu-andrew The issue |
|
8129355 was a clean backport and a pre-requisite for 8186095 |
This is correct, but the bug is private for some reason. |
|
/issue add 8023735,8208701,8208706,8313410,8186095,8183503 |
|
@gnu-andrew Adding additional issue to issue list: Adding additional issue to issue list: Adding additional issue to issue list: Adding additional issue to issue list: Adding additional issue to issue list: |
|
/issue remove 8313410 |
|
@gnu-andrew |
|
@gnu-andrew |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looked through the tests, mainly with an eye for required/skipped replacements of existing manual test exclusion. Also looked a the libjsig test a bit more closely. I did not directly compare all patches against the new one (now I understand why you maintainers dislike compound patches so much).
| * @bug 8000754 | ||
| * @summary Tests that a MemoryPoolMXBeans is created for metaspace and that a | ||
| * MemoryManagerMXBean is created. | ||
| * @requires vm.bits == 64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why? We have metaspace also on 32-bit, just no class space.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This and the other test you commented on are https://bugs.openjdk.org/browse/JDK-8213410
The change was backported for the alteration to runtime/CompressedOops/CompressedClassPointers.java which would otherwise have its code-based 64-bit check removed by 8208655 and not replaced.
Both of the other tests have this restriction up to trunk as well. I think the history comes from adding vm.opt.final.UseCompressedOops in JDK-8204167 which causes the error shown in 8213410, even though the actual run would work without compressed oops thanks to -XX:+IgnoreUnrecognizedVMOptions. TestMetaspaceMemoryPool even still includes a if (Platform.is64bit()) and if (InputArguments.contains("-XX:+UseCompressedOops")) in the main method which enforce the same restrictions.
I did look at backporting JDK-8204167 as well, but vm.opt.final.UseCompressedOops returned null for me even on x86_64. Maybe some test infrastructure or HotSpot change we are missing.
I don't see any issue with backporting the whole patch, given the exclusions are also there in 11+. If there is a case for running these on 32-bit, the restriction should probably be dropped in trunk and backported down for consistency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, that makes sense. Thanks for clarifying.
I looked at test/hotspot/jtreg/gc/metaspace/TestMetaspaceMemoryPool.java more closely. That test could be run for 32-bit as well, but its not worth fixing.
| * @test CompressedClassSpaceSizeInJmapHeap | ||
| * @bug 8004924 | ||
| * @summary Checks that jmap -heap contains the flag CompressedClassSpaceSize | ||
| * @requires vm.bits == 64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about this. The flag itself exists also on 32-bit, so the test should work there; it is pointless though since the flag is never used.
Yes, this is why I at least kept the individual backports to separate commits, so a 1-to-1 comparison can still be performed while this change doesn't break any tests. I could split it into about half a dozen separate PRs but I'm not sure there's much advantage (plus we already have a dependency chain of four to get to #390) and the first change would result in several test failures being introduced. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good.
|
Argh, again I forgot to mention that I am not an official jdk8 R eviewer. |
Feedback still very welcome and @jerboaa can use your comments in his formal approval. |
Sure, go ahead (but no pressure, this is not urgent). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a large change. If it wasn't only in the testing area, then this would be hard to argue to get in. GHA looks OK. Thumbs up.
| package jtreg; | ||
|
|
||
| /** | ||
| * {@code SkippedException} is an exception treaded by jtreg as an indication |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo treated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://bugs.openjdk.org/browse/JDK-8209740 :-)
I can follow up with that change and 8267751: "(test) jtreg.SkippedException has no serial VersionUID" but they are not that critical
|
|
If it wasn't only in the testing area, I wouldn't submit this kind of change for a backport. Making such changes to the codebase is a risk to stability. But, on the other hand, not improving the test suite where we can is also a risk to stability. To me, the two (sources and tests) are quite different things that happen to share the same repository. In GNU Classpath, we actually used to have the test suite as a separate independent repository, which I think was a better approach. Yes, it's harder to make sure things in there work appropriately on each JDK version, but it means each version is using the latest tests and would cut down on a huge amount of backporting work. 8u's version of the test suite is still quite immature compared with where trunk is now, so it's not a surprise that there are backports like this. Note also that this is not one change, but seven. I could have filed them all as separate PRs but, as I said to Thomas, it doesn't really make sense. I don't know how 8208655 was accepted in the state it's in, because it has a whole host of things like typos and missing import statements that are fixed in subsequent changes, but should have been caught by running the tests before commit (that's how I found them and then the fixes). So I think what we have here is much closer to how 8208655 should have been to begin with. Thanks both of you for the reviews. I know it's not easy on larger changes. |
|
/approval Introduce jtreg.SkippedException into 8u to ease the backport of JDK-8308592 and other subsequent test changes that use it. The backport has a fair chain of minor follow-on fixes which we cover under the same PR to ensure GHA tests continue to pass. |
|
@gnu-andrew usage: |
|
/approval request Introduce jtreg.SkippedException into 8u to ease the backport of JDK-8308592 and other subsequent test changes that use it. The backport has a fair chain of minor follow-on fixes which we cover under the same PR to ensure GHA tests continue to pass. |
|
@gnu-andrew |
|
/approve yes |
|
@jerboaa |
|
@gnu-andrew This change now passes all automated pre-integration checks. After integration, the commit message for the final commit will be: You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 2 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
|
/integrate |
|
Going to push as commit 3b9c787.
Your commit was automatically rebased without conflicts. |
|
@gnu-andrew Pushed as commit 3b9c787. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
This backport brings in
jtreg.SkippedExceptionwhich is used by JDK-8308592 (and likely other potential future backports as well). It is a test-only change which allows a skipped test to be correctly reported to jtreg, rather than it appearing like a successful run.The actual code changes to the HotSpot tests to use
SkippedExceptionwere mostly clean. The main manual adaptations involved the placement ofimportstatements (8u also doesn't have 8132919: 'Put compiler tests in packages') and copyright headers. Most tests also needed to have the library location/test/libadded. This is because the HotSpot tests are currently still using the HotSpot test library, not the top-level library. @zzambers work on this should eventually remove the need to reference both libraries.I've included with this change a number of follow-on changes which were necessary to make the changed tests pass. I don't know how the original version of 8208655 was committed as is, because it contains a number of typos and missing import statements which cause tests to fail. The follow-up changes are:
SkippedException. The fix is simple enough to just backport with this change and fix the test in the process. It applied cleanly other than the@ignoreline which has been replaced in 8u by aProblemList.txtaddition which is removed by this backport instead.vm.debug; this is cherry-picked from 8155219: "[TESTBUG] Rewrite compiler/ciReplay/TestVM.sh in java" which first introduced it in later JDKs. The implementation needs to be adapted to work around the absence ofjdk.debug(JDK-8139986). Usingjava.vm.versionmatches what happens in thePlatform.javatest library code.importline inConstantGettersTransitionsTest.java, which was applied manually due to differing context.@requiresstatements. This is why we needvm.debugabove and also this change due to the removed 32-bit check inruntime/CompressedOops/CompressedClassPointers.javaTestLargePageUseForAuxMemory.javawas replaced with vm.debug. In 11u, this is removed through the enhancement JDK-8152491: "Convert TracePageSizes to use UL"Absent tests were omitted. Some may be worth a later backport and should ideally use
SkippedExceptionin backporting.test/compiler/codecache/dtrace/SegmentedCodeCacheDtraceTest.java- 8059625: JEP-197 JDK-8043304: Test task: DTrace- tests for segmented codecache featuretest/compiler/intrinsics/base64/TestBase64.java- 8205528: Base64 encoding algorithm using AVX512 instructionstest/compiler/jvmci/compilerToVM/MaterializeVirtualObjectTest.java- 8136421: JEP 243: Java-Level JVM Compiler Interfacetest/runtime/libadimalloc.solaris.sparc/Testlibadimalloc.java-- 8141445: Use of Solaris/SPARC M7 libadimalloc.so can generate unknown signal in hs_err filetest/runtime/signal/SigTestDriver.java-- JDK-8200126 Open source VM runtime signal tests (needs dep JDK-8072842)test/serviceability/jvmti/NotifyFramePop/NotifyFramePopTest.java-- 8187289: NotifyFramePop request is not cleared if JVMTI_EVENT_FRAME_POP is disabledtest/serviceability/sa/ClhsdbCDSCore.java-- 8174994: SA: clhsdb printmdo throws WrongTypeException when attached to a process with CDStest/serviceability/sa/ClhsdbCDSJstackPrintAll.java-- 8174994: SA: clhsdb printmdo throws WrongTypeException when attached to a process with CDStest/serviceability/sa/ClhsdbInspect.java-- 8192985: SA: Test cases for the clhsdb 'inspect', 'scanoops' and 'printas' commandstest/serviceability/sa/ClhsdbJdis.java-- 8193124: SA: Testcases for clhsdb jdis and findpc commandstest/serviceability/sa/ClhsdbLongConstant.java-- 8190198: SA: Framework for writing 'jhsdb clhsdb' commands tests and testcases for some of the commandstest/serviceability/sa/ClhsdbPrintAs.java-- 8192985: SA: Test cases for the clhsdb 'inspect', 'scanoops' and 'printas' commandstest/serviceability/sa/ClhsdbRegionDetailsScanOopsForG1.java-- 8175312: SA: clhsdb: Provide an improved heap summary for 'universe' for G1GCtest/serviceability/sa/ClhsdbScanOops.java-- 8192985: SA: Test cases for the clhsdb 'inspect', 'scanoops' and 'printas' commandstest/serviceability/sa/DeadlockDetectionTest.java-- 8086134: Deadlock detection fails to attach to core filetest/serviceability/sa/TestJmapCore.java-- 8203491: [TESTBUG] Port heapdump tests into javatest/vmTestbase/gc/g1/unloading/UnloadingTest.java-- 8199370: [TESTBUG] Open source vm testbase GC teststest/vmTestbase/nsk/jdi/AttachingConnector/attach/attach004/TestDriver.java-- 8199382: [TESTBUG] Open source VM testbase JDI teststest/vmTestbase/nsk/monitoring/stress/thread/strace001.java-- 8199375: [TESTBUG] Open source vm testbase monitoring testsThe following two are present, but in much older versions in different locations:
test/compiler/codegen/aes/TestAESMain.java->./test/compiler/7184394/TestAESMain.java 8207153: Some intrinsic tests take long time to runtest/compiler/codegen/aes/TestCipherBlockChainingEncrypt.java->./test/compiler/8209951/TestCipherBlockChainingEncrypt.java8219513: compiler/codegen/aes/TestCipherBlockChainingEncrypt.java timeout on Solaris-sparcProgress
Issues
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk8u-dev.git pull/387/head:pull/387$ git checkout pull/387Update a local copy of the PR:
$ git checkout pull/387$ git pull https://git.openjdk.org/jdk8u-dev.git pull/387/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 387View PR using the GUI difftool:
$ git pr show -t 387Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk8u-dev/pull/387.diff
Webrev
Link to Webrev Comment