Changeset: 654eead2c112 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=654eead2c112
Modified Files:
sql/test/sysmon/Tests/sys_queue_expand.SQL.py
Branch: default
Log Message:
On Windows, Python multiprocessing code cannot be at the top level, ie must be
inside a function
diffs (123 lines):
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
@@ -6,10 +6,8 @@
###
import pymonetdb
-import os, sys
+import os
import multiprocessing as mp
-import traceback
-import time
db = os.environ['TSTDB']
pt = int(os.environ['MAPIPORT'])
@@ -32,55 +30,61 @@ def do_error(query, res, expected_res):
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()
+def main():
+ mstdbh = None
+ mstcur = None
+ try:
+ mstdbh = pymonetdb.connect(database=db, port=pt, autocommit=True)
+ mstcur = mstdbh.cursor()
- query = 'create procedure sleep(i int) external name alarm.sleep;'
- mstcur.execute(query)
+ query = 'create procedure sleep(i int) external name alarm.sleep;'
+ mstcur.execute(query)
- 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)
+ 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]
+ # 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]
- # 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)
+ # 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]
- # 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 count(*) from sys.queue()'
- expected_res = 7
- rowcnt = mstcur.execute(query)
- res = mstcur.fetchall()
- if rowcnt != 1 or res[0][0] != 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()
+ # 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 count(*) from sys.queue()'
+ expected_res = 7
+ rowcnt = mstcur.execute(query)
+ res = mstcur.fetchall()
+ if rowcnt != 1 or res[0][0] != expected_res:
+ do_error(query, res, expected_res)
+ except pymonetdb.exceptions.Error as e:
+ print(e)
+ finally:
+ if mstdbh is not None:
+ if mstcur is not None:
+ mstcur.execute('drop procedure sleep;')
+ mstdbh.close()
+
+if __name__ == "__main__":
+ main()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list