< prev index next >

test/gc/shenandoah/options/TestExplicitGC.java

Print this page
rev 11463 : Backport Traversal GC

@@ -1,6 +1,6 @@
-/*
+'/*
  * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
  *
  * 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.

@@ -49,15 +49,20 @@
 
         String[] full = new String[] {
                 "Pause Full"
         };
 
-        String[] concurrent = new String[] {
+        String[] concNormal = new String[] {
                 "Pause Init Mark",
                 "Pause Final Mark",
         };
 
+        String[] concTraversal = new String[] {
+                "Pause Init Traversal",
+                "Pause Final Traversal",
+        };
+
         {
             ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
                     "-XX:+UnlockExperimentalVMOptions",
                     "-XX:+UseShenandoahGC",
                     "-verbose:gc",

@@ -65,13 +70,16 @@
                     "test");
             OutputAnalyzer output = new OutputAnalyzer(pb.start());
             for (String p : full) {
                 output.shouldNotContain(p);
             }
-            for (String p : concurrent) {
+            for (String p : concNormal) {
                 output.shouldContain(p);
             }
+            for (String p : concTraversal) {
+                output.shouldNotContain(p);
+            }
         }
 
         {
             ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
                     "-XX:+UnlockExperimentalVMOptions",

@@ -82,11 +90,14 @@
                     "test");
             OutputAnalyzer output = new OutputAnalyzer(pb.start());
             for (String p : full) {
                 output.shouldNotContain(p);
             }
-            for (String p : concurrent) {
+            for (String p : concNormal) {
+                output.shouldNotContain(p);
+            }
+            for (String p : concTraversal) {
                 output.shouldNotContain(p);
             }
         }
 
         {

@@ -99,11 +110,35 @@
                     "test");
             OutputAnalyzer output = new OutputAnalyzer(pb.start());
             for (String p : full) {
                 output.shouldNotContain(p);
             }
-            for (String p : concurrent) {
+            for (String p : concNormal) {
+                output.shouldContain(p);
+            }
+            for (String p : concTraversal) {
+                output.shouldNotContain(p);
+            }
+        }
+
+        {
+            ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
+                    "-XX:+UnlockExperimentalVMOptions",
+                    "-XX:+UseShenandoahGC",
+                    "-verbose:gc",
+                    "-XX:+ExplicitGCInvokesConcurrent",
+                    "-XX:ShenandoahGCMode=traversal",
+                     TestExplicitGC.class.getName(),
+                    "test");
+            OutputAnalyzer output = new OutputAnalyzer(pb.start());
+            for (String p : full) {
+                output.shouldNotContain(p);
+            }
+            for (String p : concNormal) {
+                output.shouldNotContain(p);
+            }
+            for (String p : concTraversal) {
                 output.shouldContain(p);
             }
         }
 
         {

@@ -116,11 +151,14 @@
                     "test");
             OutputAnalyzer output = new OutputAnalyzer(pb.start());
             for (String p : full) {
                 output.shouldContain(p);
             }
-            for (String p : concurrent) {
+            for (String p : concNormal) {
+                output.shouldNotContain(p);
+            }
+            for (String p : concTraversal) {
                 output.shouldNotContain(p);
             }
         }
     }
 }
< prev index next >