summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-01-04 11:46:16 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-01-04 11:46:16 -0800
commit9dc2e23f6afc8700d973d5cfc8f4bdd9e415f7b2 (patch)
treef4fb59521c3a0a082c3115189f7617a6da8f9ad1 /test/files
parent47eb88159266170963b4af47b4f027a369320298 (diff)
parentcf7b51db3b289d2b1782ffb863912217936dcccb (diff)
downloadscala-9dc2e23f6afc8700d973d5cfc8f4bdd9e415f7b2.tar.gz
scala-9dc2e23f6afc8700d973d5cfc8f4bdd9e415f7b2.tar.bz2
scala-9dc2e23f6afc8700d973d5cfc8f4bdd9e415f7b2.zip
Merge pull request #1785 from non/bug/fix-copyToArray
Fix Iterator#copyToArray (fixes SI-6827).
Diffstat (limited to 'test/files')
-rw-r--r--test/files/run/t6827.check15
-rw-r--r--test/files/run/t6827.scala31
2 files changed, 46 insertions, 0 deletions
diff --git a/test/files/run/t6827.check b/test/files/run/t6827.check
new file mode 100644
index 0000000000..3a3a71c67d
--- /dev/null
+++ b/test/files/run/t6827.check
@@ -0,0 +1,15 @@
+start at -5: java.lang.IllegalArgumentException: requirement failed: start -5 out of range 10
+start at -1: java.lang.IllegalArgumentException: requirement failed: start -1 out of range 10
+start at limit: java.lang.IllegalArgumentException: requirement failed: start 10 out of range 10
+start at limit-1: ok
+first 10: ok
+read all: ok
+test huge len: ok
+5 from 5: ok
+20 from 5: ok
+test len overflow: ok
+start beyond limit: java.lang.IllegalArgumentException: requirement failed: start 30 out of range 10
+read 0: ok
+read -1: ok
+invalid read 0: java.lang.IllegalArgumentException: requirement failed: start 30 out of range 10
+invalid read -1: java.lang.IllegalArgumentException: requirement failed: start 30 out of range 10
diff --git a/test/files/run/t6827.scala b/test/files/run/t6827.scala
new file mode 100644
index 0000000000..7e8918e3dc
--- /dev/null
+++ b/test/files/run/t6827.scala
@@ -0,0 +1,31 @@
+object Test extends App {
+ val ns = (0 until 20)
+ val arr = new Array[Int](10)
+
+ def tryit(label: String, start: Int, len: Int): Unit = {
+ val status = try {
+ val it = ns.toIterator
+ it.copyToArray(arr, start, len)
+ "ok"
+ } catch {
+ case e: Exception => e.toString
+ }
+ println("%s: %s" format (label, status))
+ }
+
+ tryit("start at -5", -5, 10)
+ tryit("start at -1", -1, 10)
+ tryit("start at limit", 10, 10)
+ tryit("start at limit-1", 9, 10)
+ tryit("first 10", 0, 10)
+ tryit("read all", 0, 20)
+ tryit("test huge len", 0, Int.MaxValue)
+ tryit("5 from 5", 5, 10)
+ tryit("20 from 5", 5, 20)
+ tryit("test len overflow", 5, Int.MaxValue)
+ tryit("start beyond limit", 30, 10)
+ tryit("read 0", 0, 0)
+ tryit("read -1", 0, -1)
+ tryit("invalid read 0", 30, 0)
+ tryit("invalid read -1", 30, -1)
+}