diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-04 14:16:21 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-04 14:16:21 -0800 |
commit | 0d3de0c25212febfed646ed505837aa0a17d2b3e (patch) | |
tree | 7a6fbbdd78ad24badadff46a52c62c99365e28d1 /test/files/run | |
parent | 54aca491463f25985d45aeb823d2cddda54b6a44 (diff) | |
parent | 92cf0e354e38d450bfe34d4612f9f869faec2baf (diff) | |
download | scala-0d3de0c25212febfed646ed505837aa0a17d2b3e.tar.gz scala-0d3de0c25212febfed646ed505837aa0a17d2b3e.tar.bz2 scala-0d3de0c25212febfed646ed505837aa0a17d2b3e.zip |
Merge pull request #1841 from adriaanm/rebase-6827-2.10.x
Fix Iterator#copyToArray (fixes SI-6827).
Diffstat (limited to 'test/files/run')
-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) +} |