Changeset: b53e12fea112 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b53e12fea112 Added Files: sql/test/sysmon/Tests/create_sleep.sql sql/test/sysmon/Tests/create_sleep.stable.err sql/test/sysmon/Tests/create_sleep.stable.out sql/test/sysmon/Tests/drop_sleep.sql sql/test/sysmon/Tests/drop_sleep.stable.err sql/test/sysmon/Tests/drop_sleep.stable.out sql/test/sysmon/Tests/sys_queue_expand.SQL.py Removed Files: sql/test/sysmon/Tests/sys_queue_expand.sql Modified Files: sql/test/sysmon/Tests/All sql/test/sysmon/Tests/sys_queue_expand.stable.out sql/test/sysmon/Tests/sysqueue.stable.out Branch: default Log Message:
Reimplemented the test 'sys_queue_expand' by using 'sys.sleep()' to make the test output deterministic diffs (truncated from 427 to 300 lines): diff --git a/sql/test/sysmon/Tests/All b/sql/test/sysmon/Tests/All --- a/sql/test/sysmon/Tests/All +++ b/sql/test/sysmon/Tests/All @@ -1,3 +1,5 @@ +create_sleep sysqueue sys_queue_rotate sys_queue_expand +drop_sleep diff --git a/sql/test/sysmon/Tests/create_sleep.sql b/sql/test/sysmon/Tests/create_sleep.sql new file mode 100644 --- /dev/null +++ b/sql/test/sysmon/Tests/create_sleep.sql @@ -0,0 +1,1 @@ +create procedure sleep(i int) external name alarm.sleep; diff --git a/sql/test/sysmon/Tests/create_sleep.stable.err b/sql/test/sysmon/Tests/create_sleep.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/sysmon/Tests/create_sleep.stable.err @@ -0,0 +1,12 @@ +stderr of test 'create_sleep` in directory 'sql/test/sysmon` itself: + + +# 16:42:16 > +# 16:42:16 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-21836" "--port=39319" +# 16:42:16 > + + +# 16:42:16 > +# 16:42:16 > "Done." +# 16:42:16 > + diff --git a/sql/test/sysmon/Tests/create_sleep.stable.out b/sql/test/sysmon/Tests/create_sleep.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/sysmon/Tests/create_sleep.stable.out @@ -0,0 +1,13 @@ +stdout of test 'create_sleep` in directory 'sql/test/sysmon` itself: + + +# 16:42:16 > +# 16:42:16 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-21836" "--port=39319" +# 16:42:16 > + +#create procedure sleep(i int) external name alarm.sleep; + +# 16:42:16 > +# 16:42:16 > "Done." +# 16:42:16 > + diff --git a/sql/test/sysmon/Tests/drop_sleep.sql b/sql/test/sysmon/Tests/drop_sleep.sql new file mode 100644 --- /dev/null +++ b/sql/test/sysmon/Tests/drop_sleep.sql @@ -0,0 +1,1 @@ +drop procedure sleep; diff --git a/sql/test/sysmon/Tests/drop_sleep.stable.err b/sql/test/sysmon/Tests/drop_sleep.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/sysmon/Tests/drop_sleep.stable.err @@ -0,0 +1,12 @@ +stderr of test 'drop_sleep` in directory 'sql/test/sysmon` itself: + + +# 16:42:18 > +# 16:42:18 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-21836" "--port=39319" +# 16:42:18 > + + +# 16:42:18 > +# 16:42:18 > "Done." +# 16:42:18 > + diff --git a/sql/test/sysmon/Tests/drop_sleep.stable.out b/sql/test/sysmon/Tests/drop_sleep.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/sysmon/Tests/drop_sleep.stable.out @@ -0,0 +1,13 @@ +stdout of test 'drop_sleep` in directory 'sql/test/sysmon` itself: + + +# 16:42:18 > +# 16:42:18 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-21836" "--port=39319" +# 16:42:18 > + +#drop procedure sleep; + +# 16:42:18 > +# 16:42:18 > "Done." +# 16:42:18 > + diff --git a/sql/test/sysmon/Tests/sys_queue_expand.SQL.py b/sql/test/sysmon/Tests/sys_queue_expand.SQL.py new file mode 100644 --- /dev/null +++ b/sql/test/sysmon/Tests/sys_queue_expand.SQL.py @@ -0,0 +1,54 @@ +import pymonetdb +import os, sys +import multiprocessing as mp +import traceback +import time + +# The job for worker process +def exec_query(): + dbh = None + try: + dbh = pymonetdb.connect(database = os.environ['TSTDB'], port = int(os.environ['MAPIPORT']), hostname = os.environ['MAPIHOST'], autocommit=True) + #dbh = pymonetdb.connect(database = 'demo', autocommit=True) + cur = dbh.cursor() + cur.execute('call sleep(3000)') + except pymonetdb.exceptions.Error as e: + print(e) + finally: + if dbh is not None: + dbh.close() + + +mstdbh = None +try: + mstdbh = pymonetdb.connect(database = os.environ['TSTDB'], port = int(os.environ['MAPIPORT']), hostname = os.environ['MAPIHOST'], autocommit=True) + #mstdbh = pymonetdb.connect(database = 'demo', autocommit=True) + mstcur = mstdbh.cursor() + + rowcnt = mstcur.execute('select \'before\', username,status,query from sys.queue()') + print("Before sleep: {no}".format(no=rowcnt)) + [print(row) for row in mstcur.fetchall()] + + # Setup a list of processes that we want to run + jobs = [mp.Process(target=exec_query, args=()) for x in range(3)] + # Run processes + [p.start() for p in jobs] + + time.sleep(1) + rowcnt = mstcur.execute('select \'during\', username,status,query from sys.queue()') + print("\nDuring sleep: {no}".format(no=rowcnt)) + [print(row) for row in mstcur.fetchall()] + + # Exit the completed processes + [p.join() for p in jobs] + + rowcnt = mstcur.execute('select \'after\', username,status,query from sys.queue()') + print("\nAfter sleep: {no}".format(no=rowcnt)) + [print(row) for row in mstcur.fetchall()] + +except pymonetdb.exceptions.Error as e: + print(e) +finally: + if mstdbh is not None: + mstdbh.close() + diff --git a/sql/test/sysmon/Tests/sys_queue_expand.sql b/sql/test/sysmon/Tests/sys_queue_expand.sql deleted file mode 100644 --- a/sql/test/sysmon/Tests/sys_queue_expand.sql +++ /dev/null @@ -1,27 +0,0 @@ --- Use prepared statements to force sys.queue() to expand its query circle. --- This test relies on the little error that once a prepared statement is --- executed, the "prepare ..." query is not removed from sys.queue() -prepare select 0; -prepare select 1; -prepare select 2; -prepare select 3; -prepare select 4; -prepare select 5; -prepare select 6; -prepare select 7; -select username, status, query from sys.queue(); -exec 0(); -select 0, username, status, query from sys.queue(); -exec 1(); -select 1, username, status, query from sys.queue(); -exec 2(); -select 2, username, status, query from sys.queue(); -exec 3(); -select 3, username, status, query from sys.queue(); -exec 4(); -select 4, username, status, query from sys.queue(); -exec 5(); -exec 6(); -exec 7(); -select 7, username, status, query from sys.queue(); -select 8, username, status, query from sys.queue(); diff --git a/sql/test/sysmon/Tests/sys_queue_expand.stable.out b/sql/test/sysmon/Tests/sys_queue_expand.stable.out --- a/sql/test/sysmon/Tests/sys_queue_expand.stable.out +++ b/sql/test/sysmon/Tests/sys_queue_expand.stable.out @@ -5,208 +5,25 @@ stdout of test 'sys_queue_expand` in dir # 18:07:00 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-31724" "--port=38231" # 18:07:00 > -#prepare select 0; -#prepare select 0; -% .prepare, .prepare, .prepare, .prepare, .prepare, .prepare # table_name -% type, digits, scale, schema, table, column # name -% varchar, int, int, str, str, str # type -% 7, 1, 1, 0, 2, 2 # length -[ "tinyint", 8, 0, "", "%2", "%2" ] -#prepare select 1; -#prepare select 1; -% .prepare, .prepare, .prepare, .prepare, .prepare, .prepare # table_name -% type, digits, scale, schema, table, column # name -% varchar, int, int, str, str, str # type -% 7, 1, 1, 0, 2, 2 # length -[ "tinyint", 1, 0, "", "%2", "%2" ] -#prepare select 2; -#prepare select 2; -% .prepare, .prepare, .prepare, .prepare, .prepare, .prepare # table_name -% type, digits, scale, schema, table, column # name -% varchar, int, int, str, str, str # type -% 7, 1, 1, 0, 2, 2 # length -[ "tinyint", 2, 0, "", "%2", "%2" ] -#prepare select 3; -#prepare select 3; -% .prepare, .prepare, .prepare, .prepare, .prepare, .prepare # table_name -% type, digits, scale, schema, table, column # name -% varchar, int, int, str, str, str # type -% 7, 1, 1, 0, 2, 2 # length -[ "tinyint", 2, 0, "", "%2", "%2" ] -#prepare select 4; -#prepare select 4; -% .prepare, .prepare, .prepare, .prepare, .prepare, .prepare # table_name -% type, digits, scale, schema, table, column # name -% varchar, int, int, str, str, str # type -% 7, 1, 1, 0, 2, 2 # length -[ "tinyint", 3, 0, "", "%2", "%2" ] -#prepare select 5; -#prepare select 5; -% .prepare, .prepare, .prepare, .prepare, .prepare, .prepare # table_name -% type, digits, scale, schema, table, column # name -% varchar, int, int, str, str, str # type -% 7, 1, 1, 0, 2, 2 # length -[ "tinyint", 3, 0, "", "%2", "%2" ] -#prepare select 6; -#prepare select 6; -% .prepare, .prepare, .prepare, .prepare, .prepare, .prepare # table_name -% type, digits, scale, schema, table, column # name -% varchar, int, int, str, str, str # type -% 7, 1, 1, 0, 2, 2 # length -[ "tinyint", 3, 0, "", "%2", "%2" ] -#prepare select 7; -#prepare select 7; -% .prepare, .prepare, .prepare, .prepare, .prepare, .prepare # table_name -% type, digits, scale, schema, table, column # name -% varchar, int, int, str, str, str # type -% 7, 1, 1, 0, 2, 2 # length -[ "tinyint", 3, 0, "", "%2", "%2" ] -#select username, status, query from sys.queue(); -% .%1, .%1, .%1 # table_name -% username, status, query # name -% clob, clob, clob # type -% 7, 8, 51 # length -[ "monetdb", "finished", "select 6, username, status, query from sys.queue();" ] -[ "monetdb", "finished", "set time zone interval \\'+02:00\\' hour to minute\n;" ] -[ "monetdb", "running", "select username, status, query from sys.queue();" ] -#exec 0(); -% .%2 # table_name -% %2 # name -% tinyint # type -% 1 # length -[ 0 ] -#select 0, username, status, query from sys.queue(); -% .%2, .%1, .%1, .%1 # table_name -% %2, username, status, query # name -% tinyint, clob, clob, clob # type -% 1, 7, 8, 51 # length -[ 0, "monetdb", "finished", "exec 0();" ] -[ 0, "monetdb", "running", "prepare select 0;" ] -[ 0, "monetdb", "running", "select 0, username, status, query from sys.queue();" ] -#exec 1(); -% .%2 # table_name -% %2 # name -% tinyint # type -% 1 # length -[ 1 ] -#select 1, username, status, query from sys.queue(); -% .%2, .%1, .%1, .%1 # table_name -% %2, username, status, query # name -% tinyint, clob, clob, clob # type -% 1, 7, 8, 51 # length -[ 1, "monetdb", "running", "prepare select 0;" ] -[ 1, "monetdb", "finished", "select 0, username, status, query from sys.queue();" ] -[ 1, "monetdb", "finished", "exec 1();" ] -[ 1, "monetdb", "running", "prepare select 1;" ] -[ 1, "monetdb", "running", "select 1, username, status, query from sys.queue();" ] -#exec 2(); -% .%2 # table_name -% %2 # name -% tinyint # type -% 1 # length -[ 2 ] -#select 2, username, status, query from sys.queue(); -% .%2, .%1, .%1, .%1 # table_name -% %2, username, status, query # name -% tinyint, clob, clob, clob # type -% 1, 7, 8, 51 # length -[ 2, "monetdb", "finished", "exec 1();" ] -[ 2, "monetdb", "running", "prepare select 1;" ] -[ 2, "monetdb", "finished", "select 1, username, status, query from sys.queue();" ] -[ 2, "monetdb", "finished", "exec 2();" ] -[ 2, "monetdb", "running", "prepare select 2;" ] -[ 2, "monetdb", "running", "select 2, username, status, query from sys.queue();" ] _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list