Changeset: 381933040a0b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=381933040a0b
Added Files:
        sql/test/Tests/bincopy_broken_strings_on_client.SQL.py
        sql/test/Tests/bincopy_broken_strings_on_client.stable.err
        sql/test/Tests/bincopy_broken_strings_on_client.stable.out
        sql/test/Tests/bincopy_broken_strings_on_server.SQL.py
        sql/test/Tests/bincopy_broken_strings_on_server.stable.err
        sql/test/Tests/bincopy_broken_strings_on_server.stable.out
Modified Files:
        sql/test/Tests/All
        sql/test/Tests/bincopy_support.py
Branch: copybinary
Log Message:

Attempt to add test for broken utf-8


diffs (161 lines):

diff --git a/sql/test/Tests/All b/sql/test/Tests/All
--- a/sql/test/Tests/All
+++ b/sql/test/Tests/All
@@ -139,3 +139,5 @@ bincopy_null_ints_on_client
 bincopy_null_ints_on_server
 bincopy_large_strings_on_client
 bincopy_large_strings_on_server
+bincopy_broken_strings_on_client
+bincopy_broken_strings_on_server
diff --git a/sql/test/Tests/bincopy_broken_strings_on_client.SQL.py 
b/sql/test/Tests/bincopy_broken_strings_on_client.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/Tests/bincopy_broken_strings_on_client.SQL.py
@@ -0,0 +1,6 @@
+#!/usr/bin/env python3
+
+from bincopy_support import run_test
+from bincopy_support import BROKEN_STRINGS as testcode
+
+run_test('client', testcode)
diff --git a/sql/test/Tests/bincopy_broken_strings_on_client.stable.err 
b/sql/test/Tests/bincopy_broken_strings_on_client.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/Tests/bincopy_broken_strings_on_client.stable.err
@@ -0,0 +1,21 @@
+stderr of test 'bincopy_broken_strings_on_client` in directory 'sql/test` 
itself:
+
+
+# 16:41:40 >  
+# 16:41:40 >  "/usr/bin/python3.7" "bincopy_broken_strings_on_client.SQL.py" 
"bincopy_broken_strings_on_client"
+# 16:41:40 >  
+
+
+# 16:41:40 >  
+# 16:41:40 >  mclient -lsql -ftest -tnone -Eutf-8 -i -e 
--host=/var/tmp/mtest-554 --port=38574 --database=mTests_sql_test
+# 16:41:40 >  
+
+MAPI  = (monetdb) /var/tmp/mtest-554/.s.monetdb.38574
+QUERY = COPY BINARY INTO foo(id, s) FROM 
R'/home/jvr/monets/copybinary/inst/mTests/sql/test/bincopy_ints.bin', 
R'/home/jvr/monets/copybinary/inst/mTests/sql/test/bincopy_broken_strings.bin' 
ON CLIENT;
+
+CODE  = BADENCODING ??????? what should be here?
+
+# 16:41:40 >  
+# 16:41:40 >  "Done."
+# 16:41:40 >  
+
diff --git a/sql/test/Tests/bincopy_broken_strings_on_client.stable.out 
b/sql/test/Tests/bincopy_broken_strings_on_client.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/Tests/bincopy_broken_strings_on_client.stable.out
@@ -0,0 +1,19 @@
+stdout of test 'bincopy_broken_strings_on_client` in directory 'sql/test` 
itself:
+
+
+# 16:41:59 >  
+# 16:41:59 >  "/usr/bin/python3.7" "bincopy_broken_strings_on_client.SQL.py" 
"bincopy_broken_strings_on_client"
+# 16:41:59 >  
+
+
+# 16:41:59 >  
+# 16:41:59 >  mclient -lsql -ftest -tnone -Eutf-8 -i -e 
--host=/var/tmp/mtest-1088 --port=33707 --database=mTests_sql_test
+# 16:41:59 >  
+
+#START TRANSACTION;
+#CREATE TABLE foo(id INT NOT NULL, s TEXT);
+
+# 16:41:59 >  
+# 16:41:59 >  "Done."
+# 16:41:59 >  
+
diff --git a/sql/test/Tests/bincopy_broken_strings_on_server.SQL.py 
b/sql/test/Tests/bincopy_broken_strings_on_server.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/Tests/bincopy_broken_strings_on_server.SQL.py
@@ -0,0 +1,6 @@
+#!/usr/bin/env python3
+
+from bincopy_support import run_test
+from bincopy_support import BROKEN_STRINGS as testcode
+
+run_test('server', testcode)
diff --git a/sql/test/Tests/bincopy_broken_strings_on_server.stable.err 
b/sql/test/Tests/bincopy_broken_strings_on_server.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/Tests/bincopy_broken_strings_on_server.stable.err
@@ -0,0 +1,21 @@
+stderr of test 'bincopy_broken_strings_on_server` in directory 'sql/test` 
itself:
+
+
+# 16:41:40 >  
+# 16:41:40 >  "/usr/bin/python3.7" "bincopy_broken_strings_on_server.SQL.py" 
"bincopy_broken_strings_on_server"
+# 16:41:40 >  
+
+
+# 16:41:40 >  
+# 16:41:40 >  mclient -lsql -ftest -tnone -Eutf-8 -i -e 
--host=/var/tmp/mtest-554 --port=38574 --database=mTests_sql_test
+# 16:41:40 >  
+
+MAPI  = (monetdb) /var/tmp/mtest-554/.s.monetdb.38574
+QUERY = COPY BINARY INTO foo(id, s) FROM 
R'/home/jvr/monets/copybinary/inst/mTests/sql/test/bincopy_ints.bin', 
R'/home/jvr/monets/copybinary/inst/mTests/sql/test/bincopy_broken_strings.bin' 
ON SERVER;
+
+CODE  = BADENCODING ??????? what should be here?
+
+# 16:41:40 >  
+# 16:41:40 >  "Done."
+# 16:41:40 >  
+
diff --git a/sql/test/Tests/bincopy_broken_strings_on_server.stable.out 
b/sql/test/Tests/bincopy_broken_strings_on_server.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/Tests/bincopy_broken_strings_on_server.stable.out
@@ -0,0 +1,20 @@
+stdout of test 'bincopy_broken_strings_on_server` in directory 'sql/test` 
itself:
+
+
+# 16:41:40 >  
+# 16:41:40 >  "/usr/bin/python3.7" "bincopy_broken_strings_on_server.SQL.py" 
"bincopy_broken_strings_on_server"
+# 16:41:40 >  
+
+
+# 16:41:40 >  
+# 16:41:40 >  mclient -lsql -ftest -tnone -Eutf-8 -i -e 
--host=/var/tmp/mtest-554 --port=38574 --database=mTests_sql_test
+# 16:41:40 >  
+
+#START TRANSACTION;
+#CREATE TABLE foo(id INT NOT NULL, s TEXT);
+#ROLLBACK;
+
+# 16:41:40 >  
+# 16:41:40 >  "Done."
+# 16:41:40 >  
+
diff --git a/sql/test/Tests/bincopy_support.py 
b/sql/test/Tests/bincopy_support.py
--- a/sql/test/Tests/bincopy_support.py
+++ b/sql/test/Tests/bincopy_support.py
@@ -77,6 +77,15 @@ def gen_large_strings(outfile):
             f.write("a" * n)
         f.write("\n")
 
+def gen_broken_strings(outfile):
+    good = bytes('bröken\n', 'utf-8')
+    bad = bytes('bröken\n', 'latin1')
+    for i in range(1_000_000):
+        if i == 123_456:
+            outfile.write(bad)
+        else:
+            outfile.write(good)
+
 INTS = """
 CREATE TABLE foo(id INT NOT NULL);
 COPY BINARY INTO foo(id) FROM @ints@ @ON@;
@@ -110,3 +119,9 @@ SELECT COUNT(id) FROM foo
 WHERE (id % 10000 <> 0 AND LENGTH(s) = 9)
 OR    (id % 10000 = 0 AND LENGTH(s) = 280000 + 9);
 """
+
+BROKEN_STRINGS = """
+CREATE TABLE foo(id INT NOT NULL, s TEXT);
+COPY BINARY INTO foo(id, s) FROM @ints@, @broken_strings@ @ON@;
+-- should fail!
+"""
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to