[JGIT PATCH 1/1] Invalid test preventing a build using maven
- From
- Constantine Plotnikov <constantine.plotnikov@gmail.com>
- Date
- Feb 16, 2009, 17:46 UTC
- Message-ID
- <85647ef50902160946m480542a3m1511366f6cafe04e@mail.gmail.com>
I have tried to build jgit using maven on Windows and build failed due to the failed test. The test QuotedStringGitPathStyleTest.testDequote_OctalAll was dependent on the system charset. If the test is run with -Dfile.encoding=Cp1251 under eclipse, it failed as well.
This was cased that by the fact that corresponding test generated invalid UTF-8 character sequence for code points U+80 - U+FF. In that case the method RawParseUtils.decodeNoFallback fall backs to the default system encoding that is Cp1251 in my environment.
The attached patch ensures that correct UTF-8 character sequence is used in the test.
diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/util/QuotedStringGitPathStyleTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/util/QuotedStringGitPathStyleTest.java index 54fbd31..7d29f21 100644 --- a/org.spearce.jgit.test/tst/org/spearce/jgit/util/QuotedStringGitPathStyleTest.java +++ b/org.spearce.jgit.test/tst/org/spearce/jgit/util/QuotedStringGitPathStyleTest.java @@ -127,13 +127,22 @@ public void testDequote_NamedEscapes() { } public void testDequote_OctalAll() { - for (int i = 0; i < 256; i++) { - String s = Integer.toOctalString(i); - while (s.length() < 3) { - s = "0" + s; - } - assertDequote("" + (char) i, "\\" + s); + for (int i = 0; i < 127; i++) { + assertDequote("" + (char) i, octalEscape(i)); } + for (int i = 128; i < 256; i++) { + int f = 0xC0 | (i >> 6); + int s = 0x80 | (i & 0x3f); + assertDequote("" + (char) i, octalEscape(f)+octalEscape(s)); + } + } + + private String octalEscape(int i) { + String s = Integer.toOctalString(i); + while (s.length() < 3) { + s = "0" + s; + } + return "\\"+s; } public void testQuote_OctalAll() {