diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-04 11:46:16 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-04 11:46:16 -0800 |
commit | 9dc2e23f6afc8700d973d5cfc8f4bdd9e415f7b2 (patch) | |
tree | f4fb59521c3a0a082c3115189f7617a6da8f9ad1 /test | |
parent | 47eb88159266170963b4af47b4f027a369320298 (diff) | |
parent | cf7b51db3b289d2b1782ffb863912217936dcccb (diff) | |
download | scala-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')
-rw-r--r-- | test/files/run/t6827.check | 15 | ||||
-rw-r--r-- | test/files/run/t6827.scala | 31 |
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) +} |