Changeset: 21f676e22150 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/21f676e22150
Modified Files:
        sql/odbc/samples/Tests/All
        sql/odbc/samples/Tests/odbcsample1.SQL.sh
        sql/odbc/tests/Tests/All
        sql/odbc/tests/Tests/ODBCStmtAttr.SQL.sh
        sql/odbc/tests/Tests/ODBCgetInfo.SQL.sh
        sql/odbc/tests/Tests/ODBCmetadata.SQL.sh
        testing/Mtest.py.in
Branch: Sep2022
Log Message:

Create test conditional HAVE_PYODBC, move odbc.ini creation to Mtest.py.
Note, the Data Source Name (DSN) that can be used for testing is
DSN=MonetDB-Test.


diffs (198 lines):

diff --git a/sql/odbc/samples/Tests/All b/sql/odbc/samples/Tests/All
--- a/sql/odbc/samples/Tests/All
+++ b/sql/odbc/samples/Tests/All
@@ -2,4 +2,4 @@
 # cf., clients/odbc/samples/Makefile.ag
 # and  http://dev.monetdb.org/hg/MonetDB/rev/168f15887717
 #
-HAVE_ODBC&NOT_WIN32?odbcsample1
+HAVE_ODBC?odbcsample1
diff --git a/sql/odbc/samples/Tests/odbcsample1.SQL.sh 
b/sql/odbc/samples/Tests/odbcsample1.SQL.sh
--- a/sql/odbc/samples/Tests/odbcsample1.SQL.sh
+++ b/sql/odbc/samples/Tests/odbcsample1.SQL.sh
@@ -1,19 +1,3 @@
 #!/bin/sh
 
-ODBCINI=$PWD/odbc.ini
-trap "rm $ODBCINI" 0 15
-cat > $ODBCINI <<EOF
-[MonetDB-Test]
-Description    = Test MonetDB Data Source
-Driver         = $LIBDIR/libMonetODBC.so
-Setup          = $LIBDIR/libMonetODBCs.so
-Host           = localhost
-Port           = $MAPIPORT
-Database       = $TSTDB
-User           = monetdb
-Password       = monetdb
-Debug          = 
-
-EOF
-export ODBCINI
-eval odbcsample1 MonetDB-Test
+odbcsample1 MonetDB-Test
diff --git a/sql/odbc/tests/Tests/All b/sql/odbc/tests/Tests/All
--- a/sql/odbc/tests/Tests/All
+++ b/sql/odbc/tests/Tests/All
@@ -1,3 +1,3 @@
-HAVE_ODBC&NOT_WIN32?ODBCgetInfo
-HAVE_ODBC&NOT_WIN32?ODBCmetadata
-HAVE_ODBC&NOT_WIN32?ODBCStmtAttr
+HAVE_ODBC?ODBCgetInfo
+HAVE_ODBC?ODBCmetadata
+HAVE_ODBC?ODBCStmtAttr
diff --git a/sql/odbc/tests/Tests/ODBCStmtAttr.SQL.sh 
b/sql/odbc/tests/Tests/ODBCStmtAttr.SQL.sh
--- a/sql/odbc/tests/Tests/ODBCStmtAttr.SQL.sh
+++ b/sql/odbc/tests/Tests/ODBCStmtAttr.SQL.sh
@@ -1,19 +1,3 @@
 #!/bin/sh
 
-ODBCINI=$PWD/odbc.ini
-trap "rm $ODBCINI" 0 15
-cat > $ODBCINI <<EOF
-[MonetDB-Test]
-Description    = Test MonetDB Data Source
-Driver         = $LIBDIR/libMonetODBC.so
-Setup          = $LIBDIR/libMonetODBCs.so
-Host           = localhost
-Port           = $MAPIPORT
-Database       = $TSTDB
-User           = monetdb
-Password       = monetdb
-Debug          = 
-
-EOF
-export ODBCINI
-eval ODBCStmtAttr MonetDB-Test
+ODBCStmtAttr MonetDB-Test
diff --git a/sql/odbc/tests/Tests/ODBCgetInfo.SQL.sh 
b/sql/odbc/tests/Tests/ODBCgetInfo.SQL.sh
--- a/sql/odbc/tests/Tests/ODBCgetInfo.SQL.sh
+++ b/sql/odbc/tests/Tests/ODBCgetInfo.SQL.sh
@@ -1,19 +1,3 @@
 #!/bin/sh
 
-ODBCINI=$PWD/odbc.ini
-trap "rm $ODBCINI" 0 15
-cat > $ODBCINI <<EOF
-[MonetDB-Test]
-Description    = Test MonetDB Data Source
-Driver         = $LIBDIR/libMonetODBC.so
-Setup          = $LIBDIR/libMonetODBCs.so
-Host           = localhost
-Port           = $MAPIPORT
-Database       = $TSTDB
-User           = monetdb
-Password       = monetdb
-Debug          = 
-
-EOF
-export ODBCINI
-eval ODBCgetInfo MonetDB-Test
+ODBCgetInfo MonetDB-Test
diff --git a/sql/odbc/tests/Tests/ODBCmetadata.SQL.sh 
b/sql/odbc/tests/Tests/ODBCmetadata.SQL.sh
--- a/sql/odbc/tests/Tests/ODBCmetadata.SQL.sh
+++ b/sql/odbc/tests/Tests/ODBCmetadata.SQL.sh
@@ -1,19 +1,3 @@
 #!/bin/sh
 
-ODBCINI=$PWD/odbc.ini
-trap "rm $ODBCINI" 0 15
-cat > $ODBCINI <<EOF
-[MonetDB-Test]
-Description    = Test MonetDB Data Source
-Driver         = $LIBDIR/libMonetODBC.so
-Setup          = $LIBDIR/libMonetODBCs.so
-Host           = localhost
-Port           = $MAPIPORT
-Database       = $TSTDB
-User           = monetdb
-Password       = monetdb
-Debug          = 
-
-EOF
-export ODBCINI
-eval ODBCmetadata MonetDB-Test
+ODBCmetadata MonetDB-Test
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -396,6 +396,7 @@ CONDITIONALS = {
     'HAVE_LIBSCIPY3'       : False,
     'HAVE_PERL'            : False,
     'HAVE_PHP'             : False,
+    'HAVE_PYODBC'          : False,
     'HAVE_PYTHON_LZ4'      : False, # module lz4 is available
     'HAVE_RUBY'            : False,
     'HAVE_CPP'             : False,
@@ -1978,7 +1979,7 @@ def RunTest(env, TST, COND, oktests, len
     nomito = os.path.isfile(TST + '.nomito')
     user = None
     passwd = None
-
+    odbc = False                # whether to set up odbc.ini file
 
     os.chdir(TSTTRGDIR)
 
@@ -2086,6 +2087,8 @@ def RunTest(env, TST, COND, oktests, len
                     reason = "as conditional '%s' does not hold." % cond
                 elem = SkipTest(env, TST, EXT, reason, length)
                 break
+            elif cond in ('HAVE_ODBC', 'HAVE_PYODBC'):
+                odbc = True
     if reason:
         pass
     elif MissingTests:
@@ -2172,6 +2175,23 @@ def RunTest(env, TST, COND, oktests, len
                     f.write(expandvars(l, env))
                 f.close()
 
+        if odbc:
+            f = openutf8('odbc.ini', 'w')
+            f.write(f'''\
+[MonetDB-Test]
+Description = Test MonetDB Data Source
+Driver = {env["LIBDIR"]}/libMonetODBC.so
+Setup = {env["LIBDIR"]}/libMonetODBCs.so
+Host = localhost
+Port = {env["MAPIPORT"]}
+Database = {TSTDB}
+User = {user or "monetdb"}
+Password = {passwd or "monetdb"}
+Debug =
+''')
+            f.close()
+            os.environ['ODBCINI'] = os.path.join(TSTTRGDIR, 'odbc.ini')
+
         STABLEout,STABLEerr = 
StableOutErr(env,par,TST,SYST,RELEASE,DIST,VERSION)
         TIMEOUT = par['TIMEOUT']
         if os.path.isfile(TST+".timeout"):
@@ -2198,6 +2218,9 @@ def RunTest(env, TST, COND, oktests, len
         if verbosity > 0:
             print(" %7.3fs " % TX, end='')
 
+        if odbc:
+            del os.environ['ODBCINI']
+
         if tres == 'timeout':
             errcode = F_TIME
         elif tres == 'recursion':
@@ -3552,6 +3575,19 @@ def main(argv) :
     # X == false  =>  @X_TRUE@='#', @X_FALSE@=''
     os.environ['PYTHON'] = sys.executable
 
+    if CONDITIONALS['HAVE_ODBC']:
+        if CONDITIONALS['NOT_WIN32']:
+            # only enable HAVE_PYODBC if we have ODBC support
+            try:
+                import pyodbc
+            except ImportError:
+                CONDITIONALS['HAVE_PYODBC'] = False
+            else:
+                CONDITIONALS['HAVE_PYODBC'] = True
+        else:
+            # for now, no ODBC testing on Windows
+            CONDITIONALS['HAVE_ODBC'] = False
+
     try:
         import lz4
     except ImportError:
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to