8207765: HeapMonitorTest.java intermittent failure
authorjcbeyler
Wed, 25 Jul 2018 10:51:16 -0700
changeset 51195 08d99d33e0aa
parent 51194 766df90d6fb5
child 51196 6d9f7c323266
8207765: HeapMonitorTest.java intermittent failure Summary: Lower the interval rate and check GC objects too Reviewed-by: dcubed, sspitsyn Contributed-by: jcbeyler@google.com
test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorTest.java
--- a/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorTest.java	Wed Jul 25 12:32:59 2018 -0700
+++ b/test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorTest.java	Wed Jul 25 10:51:16 2018 -0700
@@ -43,16 +43,20 @@
       HeapMonitor.setAllocationIterations(Integer.parseInt(args[0]));
     }
 
+    // Put sampling rate to 100k to ensure samples are collected.
+    HeapMonitor.setSamplingInterval(100 * 1024);
+
     if (!HeapMonitor.eventStorageIsEmpty()) {
       throw new RuntimeException("Storage is not empty at test start...");
     }
 
     HeapMonitor.enableSamplingEvents();
     List<Frame> frameList = HeapMonitor.allocate();
-    frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorTest.java", 51));
+    frameList.add(new Frame("main", "([Ljava/lang/String;)V", "HeapMonitorTest.java", 54));
 
     Frame[] frames = frameList.toArray(new Frame[0]);
-    if (!HeapMonitor.obtainedEvents(frames)) {
+    if (!HeapMonitor.obtainedEvents(frames)
+        && !HeapMonitor.garbageContains(frames)) {
       throw new RuntimeException("Events not found with the right frames.");
     }