diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/files/run/bug3327.check | 1 | ||||
-rw-r--r-- | test/files/run/bug3327.scala | 8 | ||||
-rw-r--r-- | test/files/run/stringbuilder.scala | 8 | ||||
-rw-r--r-- | test/pending/run/string-reverse.scala | 22 |
4 files changed, 39 insertions, 0 deletions
diff --git a/test/files/run/bug3327.check b/test/files/run/bug3327.check new file mode 100644 index 0000000000..980a0d5f19 --- /dev/null +++ b/test/files/run/bug3327.check @@ -0,0 +1 @@ +Hello World! diff --git a/test/files/run/bug3327.scala b/test/files/run/bug3327.scala new file mode 100644 index 0000000000..7e6d3fc210 --- /dev/null +++ b/test/files/run/bug3327.scala @@ -0,0 +1,8 @@ +object Test { + def main (args : Array[String]) { + val b = new StringBuilder + b.append ("Hello World!") + b.lastIndexOf ('e') + println (b.toString) + } +}
\ No newline at end of file diff --git a/test/files/run/stringbuilder.scala b/test/files/run/stringbuilder.scala index c669f1c3db..28ddc653a5 100644 --- a/test/files/run/stringbuilder.scala +++ b/test/files/run/stringbuilder.scala @@ -1,5 +1,7 @@ object Test extends Application { val str = "ABCDEFGHIJKLMABCDEFGHIJKLM" + val surrogateStr = "an old Turkic letter: \uD803\uDC22" + type SB = { def indexOf(str: String): Int def indexOf(str: String, fromIndex: Int): Int @@ -29,4 +31,10 @@ object Test extends Application { sameAnswers(_.lastIndexOf("QZV")) sameAnswers(_.lastIndexOf("GHI", 22)) sameAnswers(_.lastIndexOf("KLM", 22)) + + // testing that the "reverse" implementation avoids reversing surrogate pairs + val jsb = new JavaStringBuilder(surrogateStr) reverse + val ssb = new ScalaStringBuilder(surrogateStr) reverseContents ; + + assert(jsb.toString == ssb.toString) } diff --git a/test/pending/run/string-reverse.scala b/test/pending/run/string-reverse.scala new file mode 100644 index 0000000000..51b16bcd6a --- /dev/null +++ b/test/pending/run/string-reverse.scala @@ -0,0 +1,22 @@ +/** In case we ever feel like taking on unicode string reversal. + * See ticket #2565. + */ +object Test { + val xs = "Les Mise\u0301rables" // this is the tricky one to reverse + val ys = "Les Misérables" + val xs2 = new StringBuilder(xs) + val ys2 = new StringBuilder(ys) + + def main(args: Array[String]): Unit = { + val out = new java.io.PrintStream(System.out, true, "UTF-8") + + out.println("Strings") + List(xs, xs.reverse, ys, ys.reverse) foreach (out println _) + + out.println("StringBuilder") + out.println(xs2.toString) + out.println(xs2.reverseContents().toString) + out.println(ys2.toString) + out.println(ys2.reverseContents().toString) + } +}
\ No newline at end of file |