hotspot/test/serviceability/tmtools/jstat/GcCauseTest02.java
changeset 43933 85ee551f3948
parent 42585 570f4b5312af
child 44633 d2f5e8921045
--- a/hotspot/test/serviceability/tmtools/jstat/GcCauseTest02.java	Mon Jan 09 19:36:47 2017 +0000
+++ b/hotspot/test/serviceability/tmtools/jstat/GcCauseTest02.java	Fri Feb 03 15:45:57 2017 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,39 +25,19 @@
  * @test
  * @summary Test checks output displayed with jstat -gccause.
  *          Test scenario:
- *          tests forces debuggee application eat ~70% of heap and runs jstat.
- *          jstat should show that ~70% of heap (OC/OU ~= 70%).
+ *          test forces debuggee application eat ~70% of heap and runs jstat.
+ *          jstat should show actual usage of old gen (OC/OU ~= old gen usage).
  * @requires vm.opt.ExplicitGCInvokesConcurrent != true
  * @modules java.base/jdk.internal.misc
  * @library /test/lib
  * @library ../share
- * @run main/othervm -XX:+UsePerfData -XX:InitialHeapSize=128M -XX:MaxHeapSize=128M -XX:MaxMetaspaceSize=128M GcCauseTest02
+ * @run main/othervm -XX:+UsePerfData -XX:MaxNewSize=4m -XX:MaxHeapSize=128M -XX:MaxMetaspaceSize=128M GcCauseTest02
  */
 import utils.*;
 
 public class GcCauseTest02 {
 
-    private final static float targetMemoryUsagePercent = 0.7f;
-
     public static void main(String[] args) throws Exception {
-
-        // We will be running "jstat -gc" tool
-        JstatGcCauseTool jstatGcTool = new JstatGcCauseTool(ProcessHandle.current().getPid());
-
-        // Run once and get the  results asserting that they are reasonable
-        JstatGcCauseResults measurement1 = jstatGcTool.measure();
-        measurement1.assertConsistency();
-
-        GcProvoker gcProvoker = new GcProvoker();
-
-        // Eat metaspace and heap then run the tool again and get the results  asserting that they are reasonable
-        gcProvoker.allocateAvailableMetaspaceAndHeap(targetMemoryUsagePercent);
-        // Collect garbage. Also update VM statistics
-        System.gc();
-        JstatGcCauseResults measurement2 = jstatGcTool.measure();
-        measurement2.assertConsistency();
-
-        // Assert that space has been utilized acordingly
-        JstatResults.assertSpaceUtilization(measurement2, targetMemoryUsagePercent);
+        new GarbageProducerTest(new JstatGcCauseTool(ProcessHandle.current().getPid())).run();
     }
 }