Test Methodology
The test success criteria are:
- All new JVMTI functions tested (covered by JDK-8202567)
- All common use-cases tested (covered by JDK-8202567)
- Accuracy testing of the sampling (covered by JDK-8202567)
- Stability proven via being used in some simple application (covered by JDK-8202573)
- Proven to work with all openjdk supported GCs via the tests (covered by the tests themselves)
- Test pass rate 100% (covered by JDK-8202570)
- Test stability >99% (covered by JDK-8202570)
- Show that the data is sane via the stacktraces collected and amount of data shown to be collected (covered by tests)
- No overhead incurred due to the feature turned off, measured via performance tests (covered by JDK-8202573)
Test Inventory: New Tests
The Test plan contains these new functional tests:
General tests:
- HeapMonitorEventOnOffTest.java
- HeapMonitorInterpreterArrayTest.java
- HeapMonitorInterpreterObjectTest.java
- HeapMonitorTest.java
Works with various sampling rates:
- HeapMonitorStatArrayCorrectnessTest.java
- HeapMonitorStatObjectCorrectnessTest.java
- HeapMonitorStatRateTest.java
- HeapMonitorStatSimpleTest.java
- HeapMonitorArrayAllSampledTest.java
Works with VM collector: - HeapMonitorVMEventsTest.java
Illegal arguments and capabilities are well handled:
- HeapMonitorIllegalArgumentTest.java
- HeapMonitorNoCapabilityTest.java
Works with via threads:
- HeapMonitorThreadOnOffTest.java
- HeapMonitorThreadTest.java
Working across GCs:
- HeapMonitorGCCMSTest.java
- HeapMonitorGCParallelTest.java
- HeapMonitorGCSerialTest.java
- HeapMonitorGCTest.java
Explicitly test current unsupported use-cases:
- HeapMonitorTwoAgentsTest.java
- HeapMonitorEventsForTwoThreadsTest.java
Test Configurations
Due to the interactions between the runtime and the garbage collectors, the test should cover:
- Various GCs being used (done via the HeapMonitorGC*Test.java)
- Various runtime and JIT compilers being used (done via the HeapMonitorInterpreter*Test.java and other tests check for C2 support)
- Currently, the implementation does not support multiple agents or per thread events, this is tested via (HeapMonitorTwoAgentsTest.java and HeapMonitorEventsForTwoThreadsTest.java)
- blocks
-
JDK-8171119 JEP 331: Low-Overhead Heap Profiling
-
- Closed
-
- clones
-
JDK-8198710 Test Plan for JEP NNN: <Feature description>
-
- New
-
- duplicates
-
JDK-8196422 Test Plan for JEP 331: Low-Overhead Heap Profiling
-
- Closed
-
-
JDK-8202534 Test Plan for JEP 331: Low-Overhead Heap Profiling
-
- Closed
-
1.
|
100% public JVMTI event and API coverage |
|
Resolved | Jean Christophe Beyler | |
2.
|
100% JVMTI specification change coverage |
|
Resolved | Jean Christophe Beyler | |
3.
|
99% test stability |
|
Resolved | Jean Christophe Beyler | |
4.
|
Runs a few Benchmarks with sampling |
|
Resolved | Jean Christophe Beyler | |
5.
|
80% line coverage for native code |
|
Resolved | Jean Christophe Beyler | |
6.
|
80% block coverage for Java code |
|
Closed | Unassigned | |
7.
|
100% option combination coverage |
|
Closed | Unassigned |