test/jdk/tools/launcher/Settings.java
changeset 50545 292a4a87c321
parent 47216 71c04702a3d5
child 54541 9ff8d175035d
--- a/test/jdk/tools/launcher/Settings.java	Tue Jun 12 18:44:01 2018 -0400
+++ b/test/jdk/tools/launcher/Settings.java	Tue Jun 12 18:51:45 2018 -0400
@@ -67,11 +67,15 @@
     private static final String VM_SETTINGS = "VM settings:";
     private static final String PROP_SETTINGS = "Property settings:";
     private static final String LOCALE_SETTINGS = "Locale settings:";
+    private static final String SYSTEM_SETTINGS = "Operating System Metrics:";
 
     static void containsAllOptions(TestResult tr) {
         checkContains(tr, VM_SETTINGS);
         checkContains(tr, PROP_SETTINGS);
         checkContains(tr, LOCALE_SETTINGS);
+        if (System.getProperty("os.name").contains("Linux")) {
+            checkContains(tr, SYSTEM_SETTINGS);
+        }
     }
 
     static void runTestOptionDefault() throws IOException {
@@ -123,6 +127,20 @@
         checkContains(tr, LOCALE_SETTINGS);
     }
 
+    static void runTestOptionSystem() throws IOException {
+        TestResult tr = doExec(javaCmd, "-XshowSettings:system");
+        if (System.getProperty("os.name").contains("Linux")) {
+            checkNotContains(tr, VM_SETTINGS);
+            checkNotContains(tr, PROP_SETTINGS);
+            checkNotContains(tr, LOCALE_SETTINGS);
+            checkContains(tr, SYSTEM_SETTINGS);
+        } else {
+            // -XshowSettings prints all available settings when
+            // settings argument is not recognized.
+            containsAllOptions(tr);
+        }
+    }
+
     static void runTestBadOptions() throws IOException {
         TestResult tr = doExec(javaCmd, "-XshowSettingsBadOption");
         checkNotContains(tr, VM_SETTINGS);
@@ -146,6 +164,7 @@
         runTestOptionVM();
         runTestOptionProperty();
         runTestOptionLocale();
+        runTestOptionSystem();
         runTestBadOptions();
         runTest7123582();
         if (testExitValue != 0) {