Changeset: 257d1cb16282 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=257d1cb16282
Added Files:
sql/test/sysmon/Tests/sys_queue.sql
sql/test/sysmon/Tests/sys_queue.test
Removed 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/create_sleep.test
sql/test/sysmon/Tests/drop_sleep.reqtests
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/drop_sleep.test
sql/test/sysmon/Tests/sys_queue_expand.reqtests
sql/test/sysmon/Tests/sys_queue_expand.stable.err
sql/test/sysmon/Tests/sys_queue_expand.stable.out
sql/test/sysmon/Tests/sys_user_statistics.reqtests
sql/test/sysmon/Tests/sys_user_statistics.stable.err
sql/test/sysmon/Tests/sys_user_statistics.stable.out
sql/test/sysmon/Tests/sysqueue.sql
sql/test/sysmon/Tests/sysqueue.test
Modified Files:
sql/test/sysmon/Tests/All
sql/test/sysmon/Tests/sys_queue_expand.SQL.py
sql/test/sysmon/Tests/sys_user_statistics.SQL.py
Branch: mtest
Log Message:
Cleaned up and converted sysmon tests
diffs (truncated from 432 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,5 +1,3 @@
-sysqueue
-create_sleep
+sys_queue
sys_queue_expand
sys_user_statistics
-drop_sleep
diff --git a/sql/test/sysmon/Tests/create_sleep.sql
b/sql/test/sysmon/Tests/create_sleep.sql
deleted file mode 100644
--- a/sql/test/sysmon/Tests/create_sleep.sql
+++ /dev/null
@@ -1,1 +0,0 @@
-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
deleted file mode 100644
--- a/sql/test/sysmon/Tests/create_sleep.stable.err
+++ /dev/null
@@ -1,12 +0,0 @@
-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
deleted file mode 100644
--- a/sql/test/sysmon/Tests/create_sleep.stable.out
+++ /dev/null
@@ -1,13 +0,0 @@
-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/create_sleep.test
b/sql/test/sysmon/Tests/create_sleep.test
deleted file mode 100644
--- a/sql/test/sysmon/Tests/create_sleep.test
+++ /dev/null
@@ -1,4 +0,0 @@
-statement ok
-create procedure sleep(i int) external name alarm.sleep
-
-
diff --git a/sql/test/sysmon/Tests/drop_sleep.reqtests
b/sql/test/sysmon/Tests/drop_sleep.reqtests
deleted file mode 100644
--- a/sql/test/sysmon/Tests/drop_sleep.reqtests
+++ /dev/null
@@ -1,1 +0,0 @@
-create_sleep
diff --git a/sql/test/sysmon/Tests/drop_sleep.sql
b/sql/test/sysmon/Tests/drop_sleep.sql
deleted file mode 100644
--- a/sql/test/sysmon/Tests/drop_sleep.sql
+++ /dev/null
@@ -1,1 +0,0 @@
-drop procedure sleep;
diff --git a/sql/test/sysmon/Tests/drop_sleep.stable.err
b/sql/test/sysmon/Tests/drop_sleep.stable.err
deleted file mode 100644
--- a/sql/test/sysmon/Tests/drop_sleep.stable.err
+++ /dev/null
@@ -1,12 +0,0 @@
-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
deleted file mode 100644
--- a/sql/test/sysmon/Tests/drop_sleep.stable.out
+++ /dev/null
@@ -1,13 +0,0 @@
-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/drop_sleep.test
b/sql/test/sysmon/Tests/drop_sleep.test
deleted file mode 100644
--- a/sql/test/sysmon/Tests/drop_sleep.test
+++ /dev/null
@@ -1,4 +0,0 @@
-statement ok
-drop procedure sleep
-
-
diff --git a/sql/test/sysmon/Tests/sysqueue.sql
b/sql/test/sysmon/Tests/sys_queue.sql
rename from sql/test/sysmon/Tests/sysqueue.sql
rename to sql/test/sysmon/Tests/sys_queue.sql
diff --git a/sql/test/sysmon/Tests/sysqueue.test
b/sql/test/sysmon/Tests/sys_queue.test
rename from sql/test/sysmon/Tests/sysqueue.test
rename to sql/test/sysmon/Tests/sys_queue.test
diff --git a/sql/test/sysmon/Tests/sys_queue_expand.SQL.py
b/sql/test/sysmon/Tests/sys_queue_expand.SQL.py
--- a/sql/test/sysmon/Tests/sys_queue_expand.SQL.py
+++ b/sql/test/sysmon/Tests/sys_queue_expand.SQL.py
@@ -1,53 +1,93 @@
+###
+# Check that when a new query is executed while sys.queue() is still filled
+# with unfinished queries (e.g. RUNNING, PAUZED and PREPARED(?)), sys.queue()
+# will automatically expand the queue size
+# Need multiprocessing for the long-running queries
+###
+
import pymonetdb
import os, sys
import multiprocessing as mp
import traceback
import time
-# The job for worker process
-def exec_query():
+db = os.environ['TSTDB']
+pt = int(os.environ['MAPIPORT'])
+SLEEP_TIME='5000'
+
+def worker_task():
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)
+ dbh = pymonetdb.connect(database=db, port=pt, autocommit=True)
cur = dbh.cursor()
- cur.execute('call sys.sleep(3000)')
+ cur.execute('call sys.sleep('+SLEEP_TIME+')')
except pymonetdb.exceptions.Error as e:
print(e)
finally:
if dbh is not None:
dbh.close()
-if __name__ == '__main__':
- 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()
+def do_error(query, res, expected_res):
+ print("query text:\n" + query)
+ print("query results:\n" + str(res))
+ print("expected:\n" + str(expected_res))
+
+mstdbh = None
+try:
+ mstdbh = pymonetdb.connect(database=db, port=pt, autocommit=True)
+ mstcur = mstdbh.cursor()
- rowcnt = mstcur.execute('select \'before\', username,status,query from
sys.queue() where status = \'running\' order by status, query')
- print("Before sleep: {no}".format(no=rowcnt))
- [print(row) for row in mstcur.fetchall()]
+ query = 'create procedure sleep(i int) external name alarm.sleep;'
+ mstcur.execute(query)
- # 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]
+ query = 'select username, status, query from sys.queue() where status =
\'running\' order by query'
+ expected_res = [('monetdb', 'running', 'select username, status, query
from sys.queue() where status = \\\'running\\\' order by query\n;')]
+ rowcnt = mstcur.execute(query)
+ res = mstcur.fetchall()
+ if rowcnt != len(expected_res) or res != expected_res:
+ do_error(query, res, expected_res)
+
+ # Setup a list of processes that we want to run
+ jobs = [mp.Process(target=worker_task, 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() where status = \'running\' order by status, query')
- print("\nDuring sleep: {no}".format(no=rowcnt))
- [print(row) for row in mstcur.fetchall()]
+ # Check the long running query, but lets first wait for a moment for the
+ # workers to start with their queries
+ mstcur.execute('call sys.sleep(500)')
+ query = 'select username, status, query from sys.queue() where query like
\'call sys.sleep(5000)%\' order by query'
+ expected_res = [
+ ('monetdb', 'running', 'call sys.sleep('+SLEEP_TIME+')\n;'),
+ ('monetdb', 'running', 'call sys.sleep('+SLEEP_TIME+')\n;'),
+ ('monetdb', 'running', 'call sys.sleep('+SLEEP_TIME+')\n;')]
+ rowcnt = mstcur.execute(query)
+ res = mstcur.fetchall()
+ if rowcnt != len(expected_res) or res != expected_res:
+ do_error(query, res, expected_res)
- # Exit the completed processes
- [p.join() for p in jobs]
+ # Exit the completed processes
+ [p.join() for p in jobs]
- rowcnt = mstcur.execute('select \'after\', username,status,query from
sys.queue() where status = \'running\' order by status, query')
- 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()
+ # sys.queue() should have been expanded from 4 to 8, so we should be able
+ # to have 7 queries in the queue
+ mstcur.execute('select 6')
+ mstcur.execute('select 7')
+ query = 'select username, status, query from sys.queue() order by query'
+ expected_res = [
+ ('monetdb', 'finished', 'call sys.sleep('+SLEEP_TIME+')\n;'),
+ ('monetdb', 'finished', 'call sys.sleep('+SLEEP_TIME+')\n;'),
+ ('monetdb', 'finished', 'call sys.sleep('+SLEEP_TIME+')\n;'),
+ ('monetdb', 'finished', 'select 6\n;'),
+ ('monetdb', 'finished', 'select 7\n;'),
+ ('monetdb', 'running', 'select username, status, query from sys.queue()
order by query\n;'),
+ ('monetdb', 'finished', "select username, status, query from sys.queue()
where query like \\'call sys.sleep(5000)%\\' order by query\n;")]
+ rowcnt = mstcur.execute(query)
+ res = mstcur.fetchall()
+ if rowcnt != len(expected_res) or res != expected_res:
+ do_error(query, res, expected_res)
+except pymonetdb.exceptions.Error as e:
+ print(e)
+finally:
+ if mstdbh is not None:
+ mstcur.execute('drop procedure sleep;')
+ mstdbh.close()
diff --git a/sql/test/sysmon/Tests/sys_queue_expand.reqtests
b/sql/test/sysmon/Tests/sys_queue_expand.reqtests
deleted file mode 100644
--- a/sql/test/sysmon/Tests/sys_queue_expand.reqtests
+++ /dev/null
@@ -1,1 +0,0 @@
-create_sleep
diff --git a/sql/test/sysmon/Tests/sys_queue_expand.stable.err
b/sql/test/sysmon/Tests/sys_queue_expand.stable.err
deleted file mode 100644
--- a/sql/test/sysmon/Tests/sys_queue_expand.stable.err
+++ /dev/null
@@ -1,12 +0,0 @@
-stderr of test 'sys_queue_expand` in directory 'sql/test/sysmon` itself:
-
-
-# 18:07:00 >
-# 18:07:00 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-31724" "--port=38231"
-# 18:07:00 >
-
-
-# 18:07:00 >
-# 18:07:00 > "Done."
-# 18:07:00 >
-
diff --git a/sql/test/sysmon/Tests/sys_queue_expand.stable.out
b/sql/test/sysmon/Tests/sys_queue_expand.stable.out
deleted file mode 100644
--- a/sql/test/sysmon/Tests/sys_queue_expand.stable.out
+++ /dev/null
@@ -1,23 +0,0 @@
-stdout of test 'sys_queue_expand` in directory 'sql/test/sysmon` itself:
-
-
-# 18:07:00 >
-# 18:07:00 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-31724" "--port=38231"
-# 18:07:00 >
-
-Before sleep: 1
-('before', 'monetdb', 'running', "select \\'before\\', username,status,query
from sys.queue() where status = \\'running\\' order by status, query\n;")
-
-During sleep: 4
-('during', 'monetdb', 'running', 'call sys.sleep(3000)\n;')
-('during', 'monetdb', 'running', 'call sys.sleep(3000)\n;')
-('during', 'monetdb', 'running', 'call sys.sleep(3000)\n;')
-('during', 'monetdb', 'running', "select \\'during\\', username,status,query
from sys.queue() where status = \\'running\\' order by status, query\n;")
-
-After sleep: 1
-('after', 'monetdb', 'running', "select \\'after\\', username,status,query
from sys.queue() where status = \\'running\\' order by status, query\n;")
-
-# 16:54:22 >
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list