Changeset: 87a543e0e6f3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/87a543e0e6f3
Modified Files:
        sql/test/BugTracker-2020/Tests/remote-table-like.Bug-6841.py
Branch: default
Log Message:

If test fails, report server output.


diffs (100 lines):

diff --git a/sql/test/BugTracker-2020/Tests/remote-table-like.Bug-6841.py 
b/sql/test/BugTracker-2020/Tests/remote-table-like.Bug-6841.py
--- a/sql/test/BugTracker-2020/Tests/remote-table-like.Bug-6841.py
+++ b/sql/test/BugTracker-2020/Tests/remote-table-like.Bug-6841.py
@@ -32,46 +32,55 @@ with tempfile.TemporaryDirectory() as fa
                             dbfarm=os.path.join(farm_dir, 'node2'),
                             stdin=process.PIPE, stdout=process.PIPE,
                             stderr=process.PIPE) as node2_proc:
-            node2_conn = pymonetdb.connect(database=node2_proc.usock or 
'node2', port=node2_proc.dbport, autocommit=True)
-            node2_cur = node2_conn.cursor()
+            try:
+                node2_conn = pymonetdb.connect(database=node2_proc.usock or 
'node2', port=node2_proc.dbport, autocommit=True)
+                node2_cur = node2_conn.cursor()
 
-            node2_cur.execute("create remote table remote_data (id int, name 
varchar(2048)) on 
'mapi:monetdb://localhost:{}/node1/sys/remote_data'".format(node1_proc.dbport))
-            node2_cur.execute("select * from remote_data")
-            if node2_cur.fetchall() != [(1, 'Name 1')]:
-                sys.stderr.write("Just row (1, 'Name 1') expected")
-            node2_cur.execute("select * from remote_data where name like 'N%'")
-            if node2_cur.fetchall() != [(1, 'Name 1')]:
-                sys.stderr.write("Just row (1, 'Name 1') expected")
-            node2_cur.execute("select rank() over () from remote_data where 
name like 'N%'")
-            if node2_cur.fetchall() != [(1,)]:
-                sys.stderr.write("Just row (1,) expected")
-            node2_cur.execute("select name like 'N%' from remote_data")
-            if node2_cur.fetchall() != [(True,)]:
-                sys.stderr.write("Just row (True,) expected")
-            node2_cur.execute("select corr(1,1) from remote_data")
-            if node2_cur.fetchall() != [(None,)]:
-                sys.stderr.write("Just row (None,) expected")
-            node2_cur.execute("select corr(1,1) over () from remote_data")
-            if node2_cur.fetchall() != [(None,)]:
-                sys.stderr.write("Just row (None,) expected")
-            node2_cur.execute("select count(*) over (), max(name) over (), 
min(name) over (partition by name order by name rows between 3 preceding and 2 
preceding) from remote_data")
-            if node2_cur.fetchall() != [(1, 'Name 1', None)]:
-                sys.stderr.write("Just row (1, 'Name 1', None) expected")
-            node2_cur.execute("""select case when id = 1 then 2 when id = 2 
then 10 when id = 3 then 3 else 100 end, nullif(id, id), coalesce(id, id + 10, 
10),
-                                        case id when 1 then 5 when 2 then 10 
when 3 then 60 else 4 end, greatest(id - 7, id + 7), lead(1,1,1) over () from 
remote_data""")
-            if node2_cur.fetchall() != [(2, None, 1, 5, 8, 1)]:
-                sys.stderr.write("Just row (2, None, 1, 5, 8, 1) expected")
-            node2_cur.execute("create function \"myfunc\"(\"myarg\" int) 
returns int return \"myarg\";")
-            try:
-                node2_cur.execute("select \"myfunc\"(1) from remote_data")
-                sys.stderr.write("Exception expected")
-            except pymonetdb.DatabaseError as e:
-                pass
+                node2_cur.execute("create remote table remote_data (id int, 
name varchar(2048)) on 
'mapi:monetdb://localhost:{}/node1/sys/remote_data'".format(node1_proc.dbport))
+                node2_cur.execute("select * from remote_data")
+                if node2_cur.fetchall() != [(1, 'Name 1')]:
+                    sys.stderr.write("Just row (1, 'Name 1') expected")
+                node2_cur.execute("select * from remote_data where name like 
'N%'")
+                if node2_cur.fetchall() != [(1, 'Name 1')]:
+                    sys.stderr.write("Just row (1, 'Name 1') expected")
+                node2_cur.execute("select rank() over () from remote_data 
where name like 'N%'")
+                if node2_cur.fetchall() != [(1,)]:
+                    sys.stderr.write("Just row (1,) expected")
+                node2_cur.execute("select name like 'N%' from remote_data")
+                if node2_cur.fetchall() != [(True,)]:
+                    sys.stderr.write("Just row (True,) expected")
+                node2_cur.execute("select corr(1,1) from remote_data")
+                if node2_cur.fetchall() != [(None,)]:
+                    sys.stderr.write("Just row (None,) expected")
+                node2_cur.execute("select corr(1,1) over () from remote_data")
+                if node2_cur.fetchall() != [(None,)]:
+                    sys.stderr.write("Just row (None,) expected")
+                node2_cur.execute("select count(*) over (), max(name) over (), 
min(name) over (partition by name order by name rows between 3 preceding and 2 
preceding) from remote_data")
+                if node2_cur.fetchall() != [(1, 'Name 1', None)]:
+                    sys.stderr.write("Just row (1, 'Name 1', None) expected")
+                node2_cur.execute("""select case when id = 1 then 2 when id = 
2 then 10 when id = 3 then 3 else 100 end, nullif(id, id), coalesce(id, id + 
10, 10),
+                                            case id when 1 then 5 when 2 then 
10 when 3 then 60 else 4 end, greatest(id - 7, id + 7), lead(1,1,1) over () 
from remote_data""")
+                if node2_cur.fetchall() != [(2, None, 1, 5, 8, 1)]:
+                    sys.stderr.write("Just row (2, None, 1, 5, 8, 1) expected")
+                node2_cur.execute("create function \"myfunc\"(\"myarg\" int) 
returns int return \"myarg\";")
+                try:
+                    node2_cur.execute("select \"myfunc\"(1) from remote_data")
+                    sys.stderr.write("Exception expected")
+                except pymonetdb.DatabaseError as e:
+                    pass
 
-            # cleanup: shutdown the monetdb servers and remove tempdir
-            node1_cur.close()
-            node1_conn.close()
-            node2_cur.close()
-            node2_conn.close()
-            node1_proc.communicate()
-            node2_proc.communicate()
+                # cleanup: shutdown the monetdb servers and remove tempdir
+                node1_cur.close()
+                node1_conn.close()
+                node2_cur.close()
+                node2_conn.close()
+            except pymonetdb.Error:
+                out1, err1 = node1_proc.communicate()
+                out2, err2 = node2_proc.communicate()
+                print(f'node1 output:\n{out1}\n')
+                print(f'node2 output:\n{out2}\n')
+                print(f'node1 error:\n{err1}\n', file=sys.stderr)
+                print(f'node2 error:\n{err2}\n', file=sys.stderr)
+            else:
+                node1_proc.communicate()
+                node2_proc.communicate()
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to