< prev index next >

test/jdk/java/util/prefs/CheckUserPrefsStorage.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, 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.

@@ -19,23 +19,54 @@
  * 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.
  */
 
+/*
+ * @test
+ * @bug 7198073 7197662
+ * @summary Tests that user preferences are stored in the permanent storage
+ * @library /test/lib
+ * @run main/othervm -Djava.util.prefs.userRoot=. CheckUserPrefsStorage
+ */
+
 import java.util.prefs.Preferences;
 
-/**
- *
- * @author khazra
- * First class called by CheckUserPrefsStorage.sh to create and
- * store a user preference
- */
+import jdk.test.lib.process.ProcessTools;
+
+public class CheckUserPrefsStorage {
 
-public class CheckUserPrefFirst {
+    private static final Class PREF_NODE = CheckUserPrefsStorage.class;
+    private static final String KEY = "Check";
+    private static final String VALUE = "Success";
+    private static final Preferences prefs = Preferences.userNodeForPackage(PREF_NODE);
 
-    public static void main(String[] args) throws Exception {
-        Preferences prefs = Preferences.userNodeForPackage(CheckUserPrefFirst.class);
-        prefs.put("Check", "Success");
+    public static void main(String[] args) throws Throwable {
+        if (args.length == 0) {
+            createPref(KEY, VALUE);
+            ProcessTools.executeTestJvm("-Djava.util.prefs.userRoot=.",
+                                        PREF_NODE.getName(),
+                                        KEY,
+                                        VALUE)
+                        .outputTo(System.out)
+                        .errorTo(System.out)
+                        .shouldHaveExitValue(0);
+        } else {
+            checkPref(args[0], args[1]);
+        }
+    }
+
+    public static void createPref(String key, String value) throws Exception {
+        prefs.put(key, value);
         prefs.flush();
     }
-}
 
+    public static void checkPref(String key, String value) throws Exception {
+        String result = prefs.get(key, null);
+        if ((result == null) || !(result.equals(value))) {
+            throw new RuntimeException("User pref not stored!");
+        }
+        prefs.remove(key);
+        prefs.flush();
+    }
+
+}
< prev index next >