hotspot/test/serviceability/tmtools/jstat/utils/JstatGcNewResults.java
changeset 35493 863fb33f9940
child 43933 85ee551f3948
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/serviceability/tmtools/jstat/utils/JstatGcNewResults.java	Thu Jan 14 15:35:21 2016 +0300
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2015, 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * Results of running the JstatGcTool ("jstat -gcnew <pid>")
+ *
+ * Output example:
+ * S0C           S1C         S0U    S1U   TT   MTT  DSS      EC                EU       YGC     YGCT
+ * 11264.0  11264.0    0.0    0.0      15  15       0.0      67584.0   1351.7      0      0.000
+
+ * Output description:
+ * S0C     Current survivor space 0 capacity (KB).
+ * S1C     Current survivor space 1 capacity (KB).
+ * S0U     Survivor space 0 utilization (KB).
+ * S1U     Survivor space 1 utilization (KB).
+ * TT        Tenuring threshold.
+ * MTT     Maximum tenuring threshold.
+ * DSS     Desired survivor size (KB).
+ * EC        Current eden space capacity (KB).
+ * EU        Eden space utilization (KB).
+ * YGC     Number of young generation GC events.
+ * YGCT   Young generation garbage collection time.
+ */
+package utils;
+
+import common.ToolResults;
+
+public class JstatGcNewResults extends JstatResults {
+
+    public JstatGcNewResults(ToolResults rawResults) {
+        super(rawResults);
+    }
+
+    /**
+     * Checks the overall consistency of the results reported by the tool
+     */
+    public void assertConsistency() {
+
+        assertThat(getExitCode() == 0, "Unexpected exit code: " + getExitCode());
+
+        float S0C = getFloatValue("S0C");
+        float S0U = getFloatValue("S0U");
+
+        assertThat(S0U <= S0C, "S0U > S0C (utilization > capacity)");
+
+        float S1C = getFloatValue("S1C");
+        float S1U = getFloatValue("S1U");
+
+        assertThat(S1U <= S1C, "S1U > S1C (utilization > capacity)");
+
+        float EC = getFloatValue("EC");
+        float EU = getFloatValue("EU");
+
+        assertThat(EU <= EC, "EU > EC (utilization > capacity)");
+
+        int YGC = getIntValue("YGC");
+        float YGCT = getFloatValue("YGCT");
+
+        if (YGC > 0) {
+            assertThat(YGCT > 0, "Number of young generation GC Events is " + YGC + ", but YGCT is 0");
+        }
+
+        int TT = getIntValue("TT");
+        int MTT = getIntValue("MTT");
+        assertThat(TT <= MTT, "TT > MTT (tenuring threshold > maximum tenuring threshold)");
+    }
+
+    private void assertThat(boolean b, String message) {
+        if (!b) {
+            throw new RuntimeException(message);
+        }
+    }
+}