jdk/test/tools/launcher/DefaultLocaleTest.java
changeset 11364 7907324fed4f
parent 5506 202f599c92aa
child 14342 8435a30053c1
--- a/jdk/test/tools/launcher/DefaultLocaleTest.java	Tue Jan 03 08:27:37 2012 -0800
+++ b/jdk/test/tools/launcher/DefaultLocaleTest.java	Tue Jan 03 08:33:30 2012 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2011, 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
@@ -21,22 +21,55 @@
  * questions.
  */
 
-import java.util.Properties;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+import static java.nio.file.Files.*;
+import static java.nio.file.StandardOpenOption.*;
 
 public class DefaultLocaleTest {
-    public static void main(String[] args) {
-        String setting =
+
+    static final String setting =
             "language:"   + System.getProperty("user.language") + "_" +
             "country:"    + System.getProperty("user.country")  + "_" +
             "encoding:"   + System.getProperty("file.encoding") + "_" +
             "jnuEncoding:"+ System.getProperty("sun.jnu.encoding");
-        if (args.length != 0) {
-            if (!setting.equals(args[0])) {
-                System.exit(1);
+
+    public static void main(String[] args) throws IOException {
+        if (args != null && args.length > 1) {
+            File f = new File(args[1]);
+            switch (args[0]) {
+                case "-r":
+                    System.out.println("reading file: " + args[1]);
+                    String str = null;
+                    try (BufferedReader in = newBufferedReader(f.toPath(),
+                                    Charset.defaultCharset())) {
+                        str = in.readLine().trim();
+                    }
+                    if (setting.equals(str)) {
+                        System.out.println("Compared ok");
+                    } else {
+                        System.out.println("Compare fails");
+                        System.out.println("EXPECTED: " + setting);
+                        System.out.println("OBTAINED: " + str);
+                        throw new RuntimeException("Test fails: compare failed");
+                    }
+                    break;
+                case "-w":
+                    System.out.println("writing file: " + args[1]);
+                    try (BufferedWriter out = newBufferedWriter(f.toPath(),
+                                    Charset.defaultCharset(), CREATE_NEW)) {
+                        out.write(setting);
+                    }
+                    break;
+                default:
+                    throw new RuntimeException("ERROR: invalid arguments");
             }
         } else {
-            System.out.println(setting);
+            throw new RuntimeException("ERROR: invalid arguments");
         }
-        System.exit(0);
-   }
+    }
 }