From f584f5b4b86be552bcba47309b8e63363a9904d9 Mon Sep 17 00:00:00 2001 From: Som Snytt Date: Wed, 29 Jan 2014 11:16:39 -0800 Subject: SI-8205 Don't include CR in line More penance. Extend the unit test and don't include CR in the line text. This is obvious, which shows how dangerous it is to refactor without unit tests. My very favorite bugs are off-by-one and EOL handling, followed closely by off-by-Int.MaxValue. --- .../reflect/internal/util/SourceFileTest.scala | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'test') diff --git a/test/junit/scala/reflect/internal/util/SourceFileTest.scala b/test/junit/scala/reflect/internal/util/SourceFileTest.scala index bbd5685ef7..903e705ba2 100644 --- a/test/junit/scala/reflect/internal/util/SourceFileTest.scala +++ b/test/junit/scala/reflect/internal/util/SourceFileTest.scala @@ -30,4 +30,26 @@ class SourceFileTest { assertEquals("def", lineContentOf("abc\ndef", 6)) assertEquals("def", lineContentOf("abc\ndef\n", 7)) } + + @Test + def CRisEOL(): Unit = { + assertEquals("", lineContentOf("\r", 0)) + assertEquals("abc", lineContentOf("abc\rdef", 0)) + assertEquals("abc", lineContentOf("abc\rdef", 3)) + assertEquals("def", lineContentOf("abc\rdef", 4)) + assertEquals("def", lineContentOf("abc\rdef", 6)) + assertEquals("def", lineContentOf("abc\rdef\r", 7)) + } + + @Test + def CRNLisEOL(): Unit = { + assertEquals("", lineContentOf("\r\n", 0)) + assertEquals("abc", lineContentOf("abc\r\ndef", 0)) + assertEquals("abc", lineContentOf("abc\r\ndef", 3)) + assertEquals("abc", lineContentOf("abc\r\ndef", 4)) + assertEquals("def", lineContentOf("abc\r\ndef", 5)) + assertEquals("def", lineContentOf("abc\r\ndef", 7)) + assertEquals("def", lineContentOf("abc\r\ndef", 8)) + assertEquals("def", lineContentOf("abc\r\ndef\r\n", 9)) + } } -- cgit v1.2.3