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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list