Changeset: 09061d25d35e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/09061d25d35e
Added Files:
sql/test/miscellaneous/Tests/mserver5-in-memory.SQL.py
Modified Files:
sql/test/miscellaneous/Tests/All
Branch: Jul2021
Log Message:
One more problem yet to be fixed: in-memory mode connection
diffs (66 lines):
diff --git a/sql/test/miscellaneous/Tests/All b/sql/test/miscellaneous/Tests/All
--- a/sql/test/miscellaneous/Tests/All
+++ b/sql/test/miscellaneous/Tests/All
@@ -21,3 +21,4 @@ vessels
prepare
transaction_isolation
transaction_isolation2
+mserver5-in-memory
diff --git a/sql/test/miscellaneous/Tests/mserver5-in-memory.SQL.py
b/sql/test/miscellaneous/Tests/mserver5-in-memory.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/miscellaneous/Tests/mserver5-in-memory.SQL.py
@@ -0,0 +1,53 @@
+import socket, subprocess, time
+from MonetDBtesting.sqltest import SQLTestCase
+
+def freeport():
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.bind(('', 0))
+ port = sock.getsockname()[1]
+ sock.close()
+ return port
+
+def wait_server_to_start(port):
+ started = False
+ mserver_process.poll()
+ if mserver_process.returncode is not None:
+ mserver_process.wait()
+ raise Exception("The server terminated early")
+ retry = 0
+ while retry < 3:
+ retry += 1
+ try:
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.connect(('localhost', port))
+ flag = sock.recv(2)
+ started = True
+ except socket.error:
+ pass
+ time.sleep(0.4)
+ if not started:
+ raise Exception("The server did not start?")
+
+prt = freeport()
+cmd = ['mserver5', '--in-memory', '--set', 'mapi_port=%d' % (prt,)]
+mserver_process = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
+wait_server_to_start(prt)
+with SQLTestCase() as mdb:
+ mdb.connect(database=None, port=prt, username="monetdb",
password="monetdb")
+ mdb.execute("""
+ start transaction;
+ create table iwontpersist (mycol int);
+ insert into iwontpersist values (1);
+ commit;
+ """).assertSucceeded()
+ mdb.execute('SELECT mycol FROM
iwontpersist;').assertDataResultMatch([(1,)])
+mserver_process.terminate()
+
+prt = freeport()
+cmd = ['mserver5', '--in-memory', '--set', 'mapi_port=%d' % (prt,)]
+mserver_process = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
+wait_server_to_start(prt)
+with SQLTestCase() as mdb:
+ mdb.connect(database=None, port=prt, username="monetdb",
password="monetdb")
+ mdb.execute('SELECT mycol FROM
iwontpersist;').assertFailed(err_code="42S02", err_message="SELECT: no such
table 'iwontpersist'")
+mserver_process.terminate()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list