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]
