-
Notifications
You must be signed in to change notification settings - Fork 152
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
8208655: use JTreg skipped status in hotspot tests #387
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).
@@ -30,6 +30,7 @@ | |||
* @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.
@@ -25,6 +25,7 @@ | |||
* @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.SkippedException
which 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
SkippedException
were mostly clean. The main manual adaptations involved the placement ofimport
statements (8u also doesn't have 8132919: 'Put compiler tests in packages') and copyright headers. Most tests also needed to have the library location/test/lib
added. 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@ignore
line which has been replaced in 8u by aProblemList.txt
addition 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.version
matches what happens in thePlatform.java
test library code.import
line inConstantGettersTransitionsTest.java
, which was applied manually due to differing context.@requires
statements. This is why we needvm.debug
above and also this change due to the removed 32-bit check inruntime/CompressedOops/CompressedClassPointers.java
TestLargePageUseForAuxMemory.java
was 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
SkippedException
in 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 run
test/compiler/codegen/aes/TestCipherBlockChainingEncrypt.java
->./test/compiler/8209951/TestCipherBlockChainingEncrypt.java
8219513: compiler/codegen/aes/TestCipherBlockChainingEncrypt.java timeout on Solaris-sparcProgress
Issues
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk8u-dev.git pull/387/head:pull/387
$ git checkout pull/387
Update a local copy of the PR:
$ git checkout pull/387
$ git pull https://git.openjdk.org/jdk8u-dev.git pull/387/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 387
View PR using the GUI difftool:
$ git pr show -t 387
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk8u-dev/pull/387.diff
Webrev
Link to Webrev Comment