test/jdk/java/lang/String/CompactString/CompareTo.java
changeset 49115 ecfaa82c53be
parent 47216 71c04702a3d5
--- a/test/jdk/java/lang/String/CompactString/CompareTo.java	Thu Mar 01 21:09:54 2018 +0000
+++ b/test/jdk/java/lang/String/CompactString/CompareTo.java	Thu Mar 01 15:31:04 2018 -0800
@@ -28,8 +28,9 @@
 
 /*
  * @test
- * @bug 8077559
- * @summary Tests Compact String. This one is for String.compareTo.
+ * @bug 8077559 8137326
+ * @summary Tests Compact String. Verifies the compareTo method for String,
+ * StringBuilder and StringBuffer.
  * @run testng/othervm -XX:+CompactStrings CompareTo
  * @run testng/othervm -XX:-CompactStrings CompareTo
  */
@@ -91,4 +92,46 @@
                                             source));
                         });
     }
+
+    /*
+     * Runs the same test with StringBuilder
+    */
+    @Test(dataProvider = "provider")
+    public void testStringBuilder(String str, String anotherString, int expected) {
+        StringBuilder another = new StringBuilder(anotherString);
+        map.get(str)
+                .forEach(
+                        (source, data) -> {
+                            StringBuilder sb = new StringBuilder(data);
+                            assertEquals(
+                                    sb.compareTo(another),
+                                    expected,
+                                    String.format(
+                                            "testing StringBuilder(%s).compareTo(%s), source : %s, ",
+                                            escapeNonASCIIs(data),
+                                            escapeNonASCIIs(anotherString),
+                                            source));
+                        });
+    }
+
+    /*
+     * Runs the same test with StringBuffer
+    */
+    @Test(dataProvider = "provider")
+    public void testStringBuffer(String str, String anotherString, int expected) {
+        StringBuffer another = new StringBuffer(anotherString);
+        map.get(str)
+                .forEach(
+                        (source, data) -> {
+                            StringBuffer sb = new StringBuffer(data);
+                            assertEquals(
+                                    sb.compareTo(another),
+                                    expected,
+                                    String.format(
+                                            "testing StringBuffer(%s).compareTo(%s), source : %s, ",
+                                            escapeNonASCIIs(data),
+                                            escapeNonASCIIs(anotherString),
+                                            source));
+                        });
+    }
 }