Changeset: 42d6226ac18f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/42d6226ac18f
Added Files:
        sql/test/mapi/Tests/clientinfo-mclient.SQL.py
Modified Files:
        sql/test/mapi/Tests/All
Branch: Aug2024
Log Message:

Add test for clientinfo

It uses mclient so it doesn't require pymonetdb updates


diffs (67 lines):

diff --git a/sql/test/mapi/Tests/All b/sql/test/mapi/Tests/All
--- a/sql/test/mapi/Tests/All
+++ b/sql/test/mapi/Tests/All
@@ -9,3 +9,4 @@ HAVE_HGE?sql_int128
 HAVE_HGE?python3_int128
 HAVE_HGE?sql_dec38
 HAVE_HGE?python3_dec38
+clientinfo-mclient
diff --git a/sql/test/mapi/Tests/clientinfo-mclient.SQL.py 
b/sql/test/mapi/Tests/clientinfo-mclient.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/mapi/Tests/clientinfo-mclient.SQL.py
@@ -0,0 +1,54 @@
+import os
+import subprocess
+
+TSTDB = os.environ['TSTDB']
+MAPIPORT = os.environ['MAPIPORT']
+
+QUERY = """\
+SELECT *
+FROM sys.sessions
+WHERE sessionid = current_sessionid()
+"""
+
+cmd = [
+    'mclient',
+    '-d', TSTDB,
+    '-p', MAPIPORT,
+    '-fexpanded',
+    '-s', QUERY,
+]
+
+out = subprocess.check_output(cmd, encoding='latin1')
+
+# print(out)
+
+fields = dict()
+for line in out.splitlines()[1:]:
+    line = line.strip()
+    if line:
+        k, v = line.split('|', 1)
+        k = k.strip()
+        v = v.strip()
+        fields[k] = v
+
+assert fields['language'] == 'sql',\
+    f'Found {fields["language"]!r}'
+
+assert fields['peer'] == '<UNIX SOCKET>' or ']:' in fields['peer'],\
+    f'Found {fields["peer"]!r}'
+
+assert fields['hostname'] != 'null',\
+    f'Found {fields["hostname"]!r}'
+
+# could be mclient-11.51.0, mclient.exe, or whatever
+assert fields['application'].startswith('mclient'),\
+    f'Found {fields["application"]!r}'
+
+assert fields['client'].startswith('libmapi '),\
+    f'Found {fields["client"]!r}'
+
+assert fields['clientpid'] != 'null' and int(fields['clientpid']) > 0,\
+    f'Found {fields["clientpid"]!r}'
+
+assert fields['remark'] == 'null',\
+    f'Found {fields["remark"]!r}'
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to