]> source.dussan.org Git - aspectj.git/commit
Improve text matching in OutputSpec, fixing some failing Windows tests
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Sun, 14 Mar 2021 03:19:21 +0000 (10:19 +0700)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Sun, 14 Mar 2021 03:19:21 +0000 (10:19 +0700)
commit052bd66fb22b11cc53f4379f53dc4f894257470b
treed32b6d5d02b975e9d3ac8961bf067570830b51f2
parent2fd6804db8aebfe6634e4df7d5e5c71fe856d4f6
Improve text matching in OutputSpec, fixing some failing Windows tests

Some Java 14 text block tests failed on Windows because a
StringTokenizer was used to split by LF, but the Windows line
separator is CR+LF. Because a multi-line string ending with CR+LF is
printed via 'System.out.println' in the test code, another CR+LF is
added to the output, resulting in trailing CR+LF+CR+LF. Hence, between
the two LFs, the tokenizer actually found an additional line consisting
of CR (only on Windows, of course). Despite each line token actually
containing a trailing CR token, that did not matter much because
'String.trim' was used everywhere before comparing values.

Anyway, the improved OutputSpec uses text.trim().split("\\s*\n\\s*"),
which takes care of leading/trailing whitespace both around the whole
output and for each separate line.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
testing/src/test/java/org/aspectj/testing/OutputSpec.java
tests/features195/textblock/Code.java
tests/features195/textblock/Code2.java