Changeset: 613f94a13ad6 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java/rev/613f94a13ad6 Modified Files: tests/OnClientTester.java Branch: default Log Message:
Show hexdumps in the File Transfer encoding tests to track down elusive Windows problem diffs (63 lines): diff --git a/tests/OnClientTester.java b/tests/OnClientTester.java --- a/tests/OnClientTester.java +++ b/tests/OnClientTester.java @@ -12,6 +12,7 @@ import org.monetdb.jdbc.MonetConnection. import org.monetdb.util.FileTransferHandler; import java.io.*; +import java.lang.Character.UnicodeBlock; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.FileVisitResult; @@ -263,7 +264,7 @@ public final class OnClientTester { static BugFixLevel forVersion(int major, int minor, int micro) { BugFixLevel lastValid = Baseline; - for (BugFixLevel level: BugFixLevel.values()) { + for (BugFixLevel level : BugFixLevel.values()) { if (level.includesVersion(major, minor, micro)) lastValid = level; else @@ -565,6 +566,27 @@ public final class OnClientTester { exitTest(); } + private String hexdump(String s) + { + StringBuilder buf = new StringBuilder(); + char[] chars = s.toCharArray(); + for (char c: chars) { + buf.append(' '); + buf.append((int)c); + + UnicodeBlock b = UnicodeBlock.of(c); + if (!Character.isISOControl(c) && b != null) { + if (b != UnicodeBlock.HIGH_SURROGATES && b != UnicodeBlock.LOW_SURROGATES && b != UnicodeBlock.SPECIALS) { + buf.append("='"); + buf.append(c); + buf.append("'"); + } + } + } + + return "<" + buf.toString().trim() + ">"; + } + private void testFileTransferHandlerUpload(Charset handlerEncoding, String fileEncoding) throws IOException, SQLException, Failure { prepare(); Path d = getTmpDir(currentTestName); @@ -578,7 +600,13 @@ public final class OnClientTester { conn.setUploadHandler(new FileTransferHandler(d, handlerEncoding)); update("COPY INTO foo FROM 'data.txt' ON CLIENT"); assertQueryInt("SELECT SUM(i) FROM foo", 6); - assertQueryString("SELECT t FROM foo WHERE i = 2", "twø"); + final String result = queryString("SELECT t FROM foo WHERE i = 2"); + String two = "twø"; + // + String hexTwo = hexdump(two); + String hexResult = hexdump(result); + assertEq("query result hexdump", hexTwo, hexResult); + assertEq("query result", two, result); } private void test_FileTransferHandlerUploadRefused() throws IOException, SQLException, Failure { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list