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