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

Reply via email to