Changeset: 65d73769201a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/65d73769201a
Modified Files:
        sql/test/proto_loader/odbc/Tests/All
        sql/test/proto_loader/odbc/Tests/monetodbc.test
        testing/Mtest.py.in
Branch: Mar2025
Log Message:

Use our own ODBC driver through the driver manager for testing.
This is triggered by having a --loadmodule odbc_loader in the
SingleServer file, and by having the HAVE_ODBC condition in the All
file.


diffs (60 lines):

diff --git a/sql/test/proto_loader/odbc/Tests/All 
b/sql/test/proto_loader/odbc/Tests/All
--- a/sql/test/proto_loader/odbc/Tests/All
+++ b/sql/test/proto_loader/odbc/Tests/All
@@ -1,4 +1,4 @@
 incomplete_uri
-NOT_WIN32?monetodbc
+HAVE_ODBC?monetodbc
 !NOT_WIN32?monetodbc-Windows
 HAVE_SQLITE3ODBC&HAVE_DATA_PATH?sqlite3odbc
diff --git a/sql/test/proto_loader/odbc/Tests/monetodbc.test 
b/sql/test/proto_loader/odbc/Tests/monetodbc.test
--- a/sql/test/proto_loader/odbc/Tests/monetodbc.test
+++ b/sql/test/proto_loader/odbc/Tests/monetodbc.test
@@ -1,20 +1,26 @@
 -- test with 'odbc:DRIVER=/usr/lib64/libMonetODBC.so;' protocol specification
 
 statement error 42000!SELECT: proto_loader function failed 'Invalid ODBC 
connection string. Should start with 'DSN=' or 'DRIVER=' or 'FILEDSN='.'
-select * from proto_loader('odbc:Driver=/usr/lib64/libMonetODBC.so')
+select * from proto_loader('odbc:Dsn=MonetDB-Test')
 
 statement error 42000!CATALOG: no such table returning function 'proto_loader'
-select * from proto_loader('odbc:DRIVER=/usr/lib64/libMonetODBC.so', 
'monetdb', 'monetdb', 'SELECT * FROM INFORMATION_SCHEMA.TABLES')
+select * from proto_loader('odbc:DSN=MonetDB-Test', 'monetdb', 'monetdb', 
'SELECT * FROM INFORMATION_SCHEMA.TABLES')
 
 statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could 
not connect. SQLDriverConnect failed. SQLstate IM002, Errnr 0, Message 
[unixODBC][Driver Manager]Data source name not found and no default driver 
specified'
-select * from proto_loader('odbc:DSN=MonetDB;QUERY=SELECT * FROM 
INFORMATION_SCHEMA.TABLES')
+select * from proto_loader('odbc:DSN=MonetDB-Test;QUERY=SELECT * FROM 
INFORMATION_SCHEMA.TABLES')
 
 statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could 
not connect. SQLDriverConnect failed. SQLstate IM002, Errnr 0, Message 
[unixODBC][Driver Manager]Data source name not found and no default driver 
specified'
-select * from proto_loader('odbc:FILEDSN=MonetDB;QUERY=SELECT * FROM 
INFORMATION_SCHEMA.TABLES')
+select * from proto_loader('odbc:FILEDSN=MonetDB-Test;QUERY=SELECT * FROM 
INFORMATION_SCHEMA.TABLES')
 
 statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could 
not connect. SQLDriverConnect failed. SQLstate 01000, Errnr 0, Message 
[unixODBC][Driver Manager]Can't open lib 'libMonetODBC' : file not found'
 select * from proto_loader('odbc:DRIVER=libMonetODBC;QUERY=SELECT * FROM 
INFORMATION_SCHEMA.TABLES')
 
 statement error 42000!SELECT: proto_loader function failed 'odbc_loader Could 
not connect. SQLDriverConnect failed. SQLstate 01000, Errnr 0, Message 
[unixODBC][Driver Manager]Can't open lib '/usr/lib64/libMonetODBC.so' : file 
not found'
-select * from 
proto_loader('odbc:DRIVER=/usr/lib64/libMonetODBC.so;UID=monetdb;PWD=monetdb;QUERY=SELECT
 * FROM INFORMATION_SCHEMA.TABLES')
+select * from 
proto_loader('odbc:DSN=MonetDB-Test;UID=monetdb;PWD=monetdb;QUERY=SELECT * FROM 
INFORMATION_SCHEMA.TABLES')
 
+query I
+select id from 'odbc:DSN=MonetDB-Test;QUERY=select id from sys._tables where 
name = ''_tables'' order by id'
+----
+2067
+2115
+
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -1279,6 +1279,12 @@ def PerformDir(env, testdir, testlist, t
                     for o in options:
                         if o.startswith('embedded'):
                             inmem = False
+                        if o == 'odbc_loader':
+                            orig_odbcsysini = os.environ.pop('ODBCSYSINI', 
None)
+                            orig_odbcini = os.environ.pop('ODBCINI', None)
+                            orig_odbcinstini = os.environ.pop('ODBCINSTINI', 
None)
+                            os.environ['ODBCSYSINI'] = TSTTRGDIR
+                            os.environ['ODBCINI'] = os.path.join(TSTTRGDIR, 
'odbc.ini')
                         if o != 'nodrop':
                             opts.append(o)
                     if inmem:
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to