Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8202566

Test Plan for JEP 331: Low-Overhead Heap Profiling



    • JEP Task
    • Resolution: Fixed
    • P4
    • None
    • hotspot
    • None


      Test Methodology

      The test success criteria are:

      1. All new JVMTI functions tested (covered by JDK-8202567)
      2. All common use-cases tested (covered by JDK-8202567)
      3. Accuracy testing of the sampling (covered by JDK-8202567)
      4. Stability proven via being used in some simple application (covered by JDK-8202573)
      5. Proven to work with all openjdk supported GCs via the tests (covered by the tests themselves)
      6. Test pass rate 100% (covered by JDK-8202570)
      7. Test stability >99% (covered by JDK-8202570)
      8. Show that the data is sane via the stacktraces collected and amount of data shown to be collected (covered by tests)
      9. 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)


        Issue Links



              jcbeyler Jean Christophe Beyler
              jcbeyler Jean Christophe Beyler
              0 Vote for this issue
              1 Start watching this issue