[prev in list] [next in list] [prev in thread] [next in thread] 

List:       monetdb-checkins
Subject:    MonetDB: Jul2021 - One more problem yet to be fixed: in-memory m...
From:       Pedro_Ferreira <commits+pedro.ferreira=monetdbsolutions.com () mon
Date:       2021-05-31 10:30:15
Message-ID: hg.09061d25d35e.1622457015.8508725912892905401 () monetdb-vm0 ! spin-off ! cwi ! nl
[Download RAW message or body]

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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic