From 41727cc1aa49780199f50291f82653a721a5a304 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Mon, 29 Apr 2024 18:55:24 +0300 Subject: Add support for testing of libodb-oracle to odb-tests --- README.md | 2 + libodb-oracle/manifest | 129 +++++++- libodb-oracle/odb/oracle/statement.cxx | 10 +- libodb/manifest | 70 ++++ odb-tests/build/root.build | 37 ++- odb-tests/buildfile | 1 + odb-tests/common/access/testscript | 10 + odb-tests/common/as/testscript | 10 + odb-tests/common/blob/testscript | 10 + odb-tests/common/bulk/testscript | 15 + odb-tests/common/callback/testscript | 10 + odb-tests/common/changelog/testscript | 19 ++ odb-tests/common/circular/multiple/testscript | 9 + odb-tests/common/circular/single/testscript | 10 + odb-tests/common/composite/testscript | 10 + odb-tests/common/const-member/testscript | 10 + odb-tests/common/const-object/testscript | 10 + odb-tests/common/container/basics/testscript | 10 + .../common/container/change-tracking/testscript | 10 + odb-tests/common/ctor/testscript | 10 + odb-tests/common/default/testscript | 10 + odb-tests/common/definition/testscript | 10 + odb-tests/common/enum/testscript | 10 + odb-tests/common/erase-query/testscript | 10 + odb-tests/common/id/auto/testscript | 10 + odb-tests/common/id/composite/testscript | 10 + odb-tests/common/id/nested/testscript | 10 + odb-tests/common/include/testscript | 9 + odb-tests/common/index/testscript | 10 + .../common/inheritance/polymorphism/testscript | 13 + odb-tests/common/inheritance/reuse/buildfile | 16 +- odb-tests/common/inheritance/reuse/testscript | 10 + odb-tests/common/inheritance/transient/testscript | 10 + odb-tests/common/inverse/testscript | 10 + odb-tests/common/lazy-ptr/testscript | 10 + odb-tests/common/lifecycle/testscript | 10 + odb-tests/common/no-id/testscript | 10 + odb-tests/common/object/testscript | 10 + odb-tests/common/optimistic/testscript | 10 + odb-tests/common/pragma/testscript | 9 + odb-tests/common/prepared/testscript | 10 + odb-tests/common/query/array/buildfile | 6 +- odb-tests/common/query/array/testscript | 10 + odb-tests/common/query/basics/testscript | 10 + odb-tests/common/query/one/testscript | 10 + odb-tests/common/readonly/testscript | 10 + odb-tests/common/relationship/basics/testscript | 10 + odb-tests/common/relationship/on-delete/testscript | 10 + odb-tests/common/relationship/query/testscript | 10 + odb-tests/common/schema/embedded/basics/testscript | 9 + odb-tests/common/schema/embedded/order/testscript | 9 + odb-tests/common/schema/namespace/testscript | 10 + odb-tests/common/section/basics/testscript | 10 + odb-tests/common/section/polymorphism/testscript | 10 + odb-tests/common/session/cache/testscript | 10 + odb-tests/common/session/custom/testscript | 10 + odb-tests/common/threads/testscript | 10 + odb-tests/common/transaction/basics/testscript | 9 + odb-tests/common/transaction/callback/testscript | 9 + odb-tests/common/view/basics/testscript | 10 + odb-tests/common/view/olv/testscript | 13 + odb-tests/common/virtual/testscript | 10 + odb-tests/common/wrapper/testscript | 10 + odb-tests/database-options.testscript | 37 +++ odb-tests/evolution/add-column/driver.cxx | 2 +- odb-tests/evolution/add-column/testscript | 2 + odb-tests/evolution/add-foreign-key/driver.cxx | 2 +- odb-tests/evolution/add-foreign-key/testscript | 2 + odb-tests/evolution/add-index/driver.cxx | 2 +- odb-tests/evolution/add-index/testscript | 2 + odb-tests/evolution/add-table/driver.cxx | 2 +- odb-tests/evolution/add-table/testscript | 2 + odb-tests/evolution/alter-column/driver.cxx | 2 +- odb-tests/evolution/alter-column/testscript | 2 + odb-tests/evolution/combined/driver.cxx | 2 +- odb-tests/evolution/combined/testscript | 2 + odb-tests/evolution/data/driver.cxx | 2 +- odb-tests/evolution/data/testscript | 2 + odb-tests/evolution/drop-column/driver.cxx | 2 +- odb-tests/evolution/drop-column/testscript | 3 + odb-tests/evolution/drop-foreign-key/driver.cxx | 2 +- odb-tests/evolution/drop-foreign-key/testscript | 2 + odb-tests/evolution/drop-index/driver.cxx | 2 +- odb-tests/evolution/drop-index/testscript | 2 + odb-tests/evolution/drop-table/driver.cxx | 2 +- odb-tests/evolution/drop-table/testscript | 2 + odb-tests/evolution/embedded/driver.cxx | 2 +- odb-tests/evolution/soft-add/driver.cxx | 2 +- odb-tests/evolution/soft-add/testscript | 2 + odb-tests/evolution/soft-delete/driver.cxx | 2 +- odb-tests/evolution/soft-delete/testscript | 2 + odb-tests/evolution/version/driver.cxx | 2 +- odb-tests/evolution/version/testscript | 2 + odb-tests/libcommon/common.cxx | 20 ++ odb-tests/libcommon/common.hxx | 3 + odb-tests/manifest | 41 +++ odb-tests/oracle-schema.testscript | 6 + odb-tests/oracle.testscript | 12 + odb-tests/oracle/custom/buildfile | 36 ++ odb-tests/oracle/custom/driver.cxx | 14 +- odb-tests/oracle/custom/testscript | 11 + odb-tests/oracle/database/buildfile | 14 + odb-tests/oracle/database/testscript | 9 + odb-tests/oracle/native/buildfile | 15 + odb-tests/oracle/native/driver.cxx | 10 +- odb-tests/oracle/native/testscript | 9 + odb-tests/oracle/template/driver.cxx | 40 --- odb-tests/oracle/template/template-vc10.vcxproj | 180 ---------- .../oracle/template/template-vc10.vcxproj.filters | 25 -- odb-tests/oracle/template/template-vc11.vcxproj | 184 ----------- .../oracle/template/template-vc11.vcxproj.filters | 25 -- odb-tests/oracle/template/template-vc12.vcxproj | 188 ----------- .../oracle/template/template-vc12.vcxproj.filters | 25 -- odb-tests/oracle/template/template-vc8.vcproj | 354 -------------------- odb-tests/oracle/template/template-vc9.vcproj | 361 --------------------- odb-tests/oracle/template/test.hxx | 25 -- odb-tests/oracle/types/buildfile | 35 ++ odb-tests/oracle/types/driver.cxx | 44 ++- odb-tests/oracle/types/test.hxx | 8 +- odb-tests/oracle/types/testscript | 11 + 120 files changed, 1146 insertions(+), 1489 deletions(-) create mode 100644 odb-tests/oracle-schema.testscript create mode 100644 odb-tests/oracle.testscript create mode 100644 odb-tests/oracle/custom/buildfile create mode 100644 odb-tests/oracle/custom/testscript create mode 100644 odb-tests/oracle/database/buildfile create mode 100644 odb-tests/oracle/database/testscript create mode 100644 odb-tests/oracle/native/buildfile create mode 100644 odb-tests/oracle/native/testscript delete mode 100644 odb-tests/oracle/template/driver.cxx delete mode 100644 odb-tests/oracle/template/template-vc10.vcxproj delete mode 100644 odb-tests/oracle/template/template-vc10.vcxproj.filters delete mode 100644 odb-tests/oracle/template/template-vc11.vcxproj delete mode 100644 odb-tests/oracle/template/template-vc11.vcxproj.filters delete mode 100644 odb-tests/oracle/template/template-vc12.vcxproj delete mode 100644 odb-tests/oracle/template/template-vc12.vcxproj.filters delete mode 100644 odb-tests/oracle/template/template-vc8.vcproj delete mode 100644 odb-tests/oracle/template/template-vc9.vcproj delete mode 100644 odb-tests/oracle/template/test.hxx create mode 100644 odb-tests/oracle/types/buildfile create mode 100644 odb-tests/oracle/types/testscript diff --git a/README.md b/README.md index b5d1723..27ea4be 100644 --- a/README.md +++ b/README.md @@ -41,12 +41,14 @@ bdep config create @host ../odb-host --type host cc config.cxx=g++ bdep config create @sqlite ../odb-sqlite cc config.cxx=g++ bdep config create @pgsql ../odb-pgsql cc config.cxx=g++ bdep config create @mysql ../odb-mysql cc config.cxx=g++ +bdep config create @oracle ../odb-oracle cc config.cxx=g++ bdep config create @mssql ../odb-mssql cc config.cxx=g++ bdep init @host -d odb bdep init @sqlite -d libodb -d libodb-sqlite -d odb-tests bdep init @pgsql -d libodb -d libodb-pgsql -d odb-tests bdep init @mysql -d libodb -d libodb-mysql -d odb-tests +bdep init @oracle -d libodb -d libodb-oracle -d odb-tests bdep init @mssql -d libodb -d libodb-mssql -d odb-tests ``` diff --git a/libodb-oracle/manifest b/libodb-oracle/manifest index 7a8ae9f..be49894 100644 --- a/libodb-oracle/manifest +++ b/libodb-oracle/manifest @@ -24,19 +24,122 @@ depends: * bpkg >= 0.16.0- depends: libodb == $ depends: * cli ^1.2.0- ? ($config.libodb_oracle.develop) -# @@ TMP: drop develop (also drop in odb-tests/build/root.build). -# tests: odb-tests == $ \ - ? ($config.odb_tests.develop && !$defined(config.odb_tests.database)) config.odb_tests.database=oracle + ? (!$defined(config.odb_tests.database)) config.odb_tests.database=oracle + +# Note: common for all the build configurations. +# +build-auxiliary: *-oracle_* + +# Note that we can only test on custom bots since the proprietary software +# needs to be installed into the system. +# +builds: none ; Requires proprietary software. + +# Instead of the default configuration (see odb-tests for background). +# +custom-builds: latest ; Requires proprietary software. +custom-builds: &( +linux &gcc ) ; Only test on Linux with main compiler. +custom-builds: -static ; Implementation uses plugins and requires -fPIC. +#custom-build-bot: -- see below. +custom-build-config: +\ +{ + config.odb_tests.oracle.user=$getenv(DATABASE_USER) + config.odb_tests.oracle.passwd=$getenv(DATABASE_PASSWORD) + config.odb_tests.oracle.host=$getenv(DATABASE_HOST) + config.odb_tests.oracle.port=$getenv(DATABASE_PORT) + config.odb_tests.oracle.service=$getenv(DATABASE_SERVICE) +}+ odb-tests +\ -# @@ TMP +# Instead of the multi configuration (see odb-tests for background). # -builds: none ; Requires proprietary Oracle Call Interface library. -#builds: oracle - -#multi-build-config: -#\ -#{ 'config.odb_tests.database=oracle sqlite' }+ odb-tests -#; -#Enable testing in dynamic multi-database mode. -#\ +custom-multi-builds: latest ; Requires proprietary software. +custom-multi-builds: &( +linux &gcc ) ; Only test on Linux with main compiler. +custom-multi-builds: -static ; Implementation uses plugins and requires -fPIC. +#custom-multi-build-bot: -- see below. +custom-multi-build-config: +\ +{ + config.odb_tests.multi_database=true + + config.odb_tests.oracle.user=$getenv(DATABASE_USER) + config.odb_tests.oracle.passwd=$getenv(DATABASE_PASSWORD) + config.odb_tests.oracle.host=$getenv(DATABASE_HOST) + config.odb_tests.oracle.port=$getenv(DATABASE_PORT) + config.odb_tests.oracle.service=$getenv(DATABASE_SERVICE) +}+ odb-tests +\ + +custom-build-bot: +\ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M +lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H +8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe +uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X +X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3 +NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE +nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL +zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY +5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD +5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np +f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv +9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ== +-----END PUBLIC KEY----- +\ + +custom-build-bot: +\ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuLYZ68rotGDAtWViFHOe +XEsmZB8BGI+af1ixh9JOy9BE4ohGTfPr1YsjGDzh+PhOVLAtyykOoT/qG7cuGB0T +gBInoRrgVB2/ZKTMwxeDGb/TA3uykaXxcw7/liTsizHAY+phCNTbke8iER5Y78js +9GlnTPmNhwFqEj2fwCz+2o08eyZvZ9Vj1fH/bFDCmDmU33JR3crtJlC8wPiF70Ho +FJzHFdaFQl3MxvEV92HjOsyqozMi6tAVVefN1vapVQeNtjkB0Di18p0/EMugEuGU +OxktjDHQWNaV8Ao6cCDk6OkJnM3ZNL1no3cV4cuF+/xI8UZzwfPoBnwg/s183Qzu +pHHKOSHmuO0oVE/XohJhepSw3tb+wf5BwejRhYHikIjqCxJdm9H0QTiqXT82y24K +yg3gkRMOgqnVxERKKP4ZknLSMQCEKiND/t2zdLJ/lxH9eHZdPHKk3OZZG292j+Bh +fknxcTKNk1Dmf32Irs5hVrjsoU8eAutbItovzXdBaj//rn/ry/kUlCa1Ov6iLIDJ +gyxmsDlgKNR/uE9ogmDn0ishJIoCmxeqenRfJkttr9pEsDsUFuB425QGqiSxa1jh +PCNca3iRtO44wADXaQMTGpvLzBfdfVc8LoFpn+kynN0V1MvxAX4mHRXxw8ERXd3U +dpHDhOthPLolJQrYKb/YyW8CAwEAAQ== +-----END PUBLIC KEY----- +\ + +custom-multi-build-bot: +\ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M +lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H +8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe +uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X +X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3 +NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE +nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL +zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY +5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD +5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np +f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv +9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ== +-----END PUBLIC KEY----- +\ + +custom-multi-build-bot: +\ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuLYZ68rotGDAtWViFHOe +XEsmZB8BGI+af1ixh9JOy9BE4ohGTfPr1YsjGDzh+PhOVLAtyykOoT/qG7cuGB0T +gBInoRrgVB2/ZKTMwxeDGb/TA3uykaXxcw7/liTsizHAY+phCNTbke8iER5Y78js +9GlnTPmNhwFqEj2fwCz+2o08eyZvZ9Vj1fH/bFDCmDmU33JR3crtJlC8wPiF70Ho +FJzHFdaFQl3MxvEV92HjOsyqozMi6tAVVefN1vapVQeNtjkB0Di18p0/EMugEuGU +OxktjDHQWNaV8Ao6cCDk6OkJnM3ZNL1no3cV4cuF+/xI8UZzwfPoBnwg/s183Qzu +pHHKOSHmuO0oVE/XohJhepSw3tb+wf5BwejRhYHikIjqCxJdm9H0QTiqXT82y24K +yg3gkRMOgqnVxERKKP4ZknLSMQCEKiND/t2zdLJ/lxH9eHZdPHKk3OZZG292j+Bh +fknxcTKNk1Dmf32Irs5hVrjsoU8eAutbItovzXdBaj//rn/ry/kUlCa1Ov6iLIDJ +gyxmsDlgKNR/uE9ogmDn0ishJIoCmxeqenRfJkttr9pEsDsUFuB425QGqiSxa1jh +PCNca3iRtO44wADXaQMTGpvLzBfdfVc8LoFpn+kynN0V1MvxAX4mHRXxw8ERXd3U +dpHDhOthPLolJQrYKb/YyW8CAwEAAQ== +-----END PUBLIC KEY----- +\ diff --git a/libodb-oracle/odb/oracle/statement.cxx b/libodb-oracle/odb/oracle/statement.cxx index 93d8a4a..8c09d3a 100644 --- a/libodb-oracle/odb/oracle/statement.cxx +++ b/libodb-oracle/odb/oracle/statement.cxx @@ -643,13 +643,11 @@ namespace odb assert (callback); value = 0; - // When binding LOB parameters, the capacity must be greater than - // 4000 and less than the maximum LOB length in bytes. If it is - // not, OCI returns an error. Other than this, the capacity seems - // to be irrelevant to OCI bind behaviour for LOB parameters when - // used with callbacks. + // When binding LOB parameters, let's set the capacity to the + // minimum between the LOB maximum size (4GB) and the maximum + // value that can be stored in the variable of sb4 type. // - capacity = 4096; + capacity = SB4MAXVAL < OCI_LOBMAXSIZE ? SB4MAXVAL : OCI_LOBMAXSIZE; // Store skip in capacity so that the callback can offset the // values based on the iteration number. diff --git a/libodb/manifest b/libodb/manifest index 2eab739..5741da9 100644 --- a/libodb/manifest +++ b/libodb/manifest @@ -100,6 +100,40 @@ custom-multi-build-config: }+ odb-tests \ +# Complements the multi configuration (see libodb-oracle for background). +# +custom-multi-oracle-builds: latest ; Requires proprietary software. +custom-multi-oracle-builds: -wasm ; Not supported by libodb-{mysql,pgsql,oracle}. +custom-multi-oracle-builds: &( +linux &gcc ) ; Only test on Linux with main compiler. +custom-multi-oracle-builds: -static ; Implementation uses plugins and requires -fPIC. +custom-multi-oracle-build-auxiliary-mysql: *-mysql_* +custom-multi-oracle-build-auxiliary-pgsql: *-postgresql_* +custom-multi-oracle-build-auxiliary-oracle: *-oracle_* +#custom-multi-oracle-build-bot: -- see below. +custom-multi-oracle-build-config: +\ +{ + config.odb_tests.libodb_test=true + config.odb_tests.database='mysql sqlite pgsql oracle' + + config.odb_tests.mysql.user=$getenv(MYSQL_DATABASE_USER) + config.odb_tests.mysql.database=$getenv(MYSQL_DATABASE_NAME) + config.odb_tests.mysql.host=$getenv(MYSQL_DATABASE_HOST) + config.odb_tests.mysql.port=$getenv(MYSQL_DATABASE_PORT) + + config.odb_tests.pgsql.user=$getenv(PGSQL_DATABASE_USER) + config.odb_tests.pgsql.database=$getenv(PGSQL_DATABASE_NAME) + config.odb_tests.pgsql.host=$getenv(PGSQL_DATABASE_HOST) + config.odb_tests.pgsql.port=$getenv(PGSQL_DATABASE_PORT) + + config.odb_tests.oracle.user=$getenv(ORACLE_DATABASE_USER) + config.odb_tests.oracle.passwd=$getenv(ORACLE_DATABASE_PASSWORD) + config.odb_tests.oracle.host=$getenv(ORACLE_DATABASE_HOST) + config.odb_tests.oracle.port=$getenv(ORACLE_DATABASE_PORT) + config.odb_tests.oracle.service=$getenv(ORACLE_DATABASE_SERVICE) +}+ odb-tests +\ + # Complements the multi configuration (see libodb-mssql for background). # custom-multi-mssql-builds: latest ; Requires proprietary software. @@ -207,6 +241,42 @@ dpHDhOthPLolJQrYKb/YyW8CAwEAAQ== -----END PUBLIC KEY----- \ +custom-multi-oracle-build-bot: +\ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M +lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H +8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe +uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X +X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3 +NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE +nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL +zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY +5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD +5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np +f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv +9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ== +-----END PUBLIC KEY----- +\ + +custom-multi-oracle-build-bot: +\ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuLYZ68rotGDAtWViFHOe +XEsmZB8BGI+af1ixh9JOy9BE4ohGTfPr1YsjGDzh+PhOVLAtyykOoT/qG7cuGB0T +gBInoRrgVB2/ZKTMwxeDGb/TA3uykaXxcw7/liTsizHAY+phCNTbke8iER5Y78js +9GlnTPmNhwFqEj2fwCz+2o08eyZvZ9Vj1fH/bFDCmDmU33JR3crtJlC8wPiF70Ho +FJzHFdaFQl3MxvEV92HjOsyqozMi6tAVVefN1vapVQeNtjkB0Di18p0/EMugEuGU +OxktjDHQWNaV8Ao6cCDk6OkJnM3ZNL1no3cV4cuF+/xI8UZzwfPoBnwg/s183Qzu +pHHKOSHmuO0oVE/XohJhepSw3tb+wf5BwejRhYHikIjqCxJdm9H0QTiqXT82y24K +yg3gkRMOgqnVxERKKP4ZknLSMQCEKiND/t2zdLJ/lxH9eHZdPHKk3OZZG292j+Bh +fknxcTKNk1Dmf32Irs5hVrjsoU8eAutbItovzXdBaj//rn/ry/kUlCa1Ov6iLIDJ +gyxmsDlgKNR/uE9ogmDn0ishJIoCmxeqenRfJkttr9pEsDsUFuB425QGqiSxa1jh +PCNca3iRtO44wADXaQMTGpvLzBfdfVc8LoFpn+kynN0V1MvxAX4mHRXxw8ERXd3U +dpHDhOthPLolJQrYKb/YyW8CAwEAAQ== +-----END PUBLIC KEY----- +\ + custom-multi-mssql-build-bot: \ -----BEGIN PUBLIC KEY----- diff --git a/odb-tests/build/root.build b/odb-tests/build/root.build index 5ef27f8..3ebe63a 100644 --- a/odb-tests/build/root.build +++ b/odb-tests/build/root.build @@ -18,10 +18,6 @@ xml{*}: extension = xml skeleton = ($build.mode == 'skeleton') -# @@ TMP: remove once no longer used by libodb-. -# -config [bool] config.odb_tests.develop ?= false - # List of the identifiers of the databases to compile and run the tests # against. The valid identifiers are mysql, sqlite, pgsql, oracle, and mssql. # @@ -159,6 +155,29 @@ config [bool] config.odb_tests.pgsql.bulk ?= ($cxx.target.class != 'windows' && $config.odb_tests.pgsql.bulk_default) pgsql_bulk = $config.odb_tests.pgsql.bulk +# Oracle +# +# The database user. +# +config [string] config.odb_tests.oracle.user ?= 'odb_test' + +# The database password. +# +config [string] config.odb_tests.oracle.passwd + +# The database host. +# +config [string] config.odb_tests.oracle.host + +# The database port. +# +config [uint64] config.odb_tests.oracle.port + +# The service name. Note that the database associated with this user on this +# service WILL BE MODIFIED by the tests. +# +config [string] config.odb_tests.oracle.service + # Microsoft SQL Server # # The database user. @@ -236,6 +255,16 @@ if! $skeleton testscript{*}: pgsql_client = $pgsql_client } + # Import the sqlplus client for creating the database schemas, etc. + # + # Note: supposed to be system-installed. + # + if $oracle + { + import! oracle_client = sqlplus%exe{sqlplus} + testscript{*}: oracle_client = $oracle_client + } + # Import the sqlcmd client for creating the database schemas, etc. # # Note: supposed to be system-installed. diff --git a/odb-tests/buildfile b/odb-tests/buildfile index 574875d..1cde5a7 100644 --- a/odb-tests/buildfile +++ b/odb-tests/buildfile @@ -6,6 +6,7 @@ ./: mysql/: include = ($mysql && !$multi) ./: sqlite/: include = ($sqlite && !$multi) ./: pgsql/: include = ($pgsql && !$multi) +./: oracle/: include = ($oracle && !$multi) ./: mssql/: include = ($mssql && !$multi) ./: evolution/: include = (!$multi) diff --git a/odb-tests/common/access/testscript b/odb-tests/common/access/testscript index 3b2618f..b0933f9 100644 --- a/odb-tests/common/access/testscript +++ b/odb-tests/common/access/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/as/testscript b/odb-tests/common/as/testscript index 4f445ff..fc1d0d4 100644 --- a/odb-tests/common/as/testscript +++ b/odb-tests/common/as/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/blob/testscript b/odb-tests/common/blob/testscript index f568d9b..3b7f962 100644 --- a/odb-tests/common/blob/testscript +++ b/odb-tests/common/blob/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/bulk/testscript b/odb-tests/common/bulk/testscript index 6e4e610..8dcdc85 100644 --- a/odb-tests/common/bulk/testscript +++ b/odb-tests/common/bulk/testscript @@ -502,6 +502,21 @@ if ($pgsql && $pgsql_bulk) end } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + + if $multi + $* # Noop. + else + $* >>>../output + end +} + : mssql : if $mssql diff --git a/odb-tests/common/callback/testscript b/odb-tests/common/callback/testscript index 6e71d67..30a4336 100644 --- a/odb-tests/common/callback/testscript +++ b/odb-tests/common/callback/testscript @@ -99,6 +99,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/changelog/testscript b/odb-tests/common/changelog/testscript index af8dcf5..60eadae 100644 --- a/odb-tests/common/changelog/testscript +++ b/odb-tests/common/changelog/testscript @@ -65,6 +65,25 @@ if $pgsql end } +: oracle +: +if $oracle +{ + odb_options += --database 'oracle' --changelog-dir $~ + + for h: $headers + n = $base($leaf($h)) + + $* $odb_options -DBVER=1 -DCVER=1 --init-changelog $h &$(n).xml &$(n).sql + + $* $odb_options -DBVER=1 -DCVER=2 $h + diff $src_base/$n-oracle-diff.xml $(n).xml + + $* $odb_options -DBVER=2 -DCVER=3 $h + diff $src_base/$n-oracle-patch.xml $(n).xml + end +} + : mssql : if $mssql diff --git a/odb-tests/common/circular/multiple/testscript b/odb-tests/common/circular/multiple/testscript index 6c46a3f..3a71341 100644 --- a/odb-tests/common/circular/multiple/testscript +++ b/odb-tests/common/circular/multiple/testscript @@ -30,6 +30,15 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/circular/single/testscript b/odb-tests/common/circular/single/testscript index 6429aa7..480ef6d 100644 --- a/odb-tests/common/circular/single/testscript +++ b/odb-tests/common/circular/single/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/composite/testscript b/odb-tests/common/composite/testscript index 8b95a89..f890985 100644 --- a/odb-tests/common/composite/testscript +++ b/odb-tests/common/composite/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/const-member/testscript b/odb-tests/common/const-member/testscript index ca05a3b..48a1456 100644 --- a/odb-tests/common/const-member/testscript +++ b/odb-tests/common/const-member/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/const-object/testscript b/odb-tests/common/const-object/testscript index 20595ef..928bad0 100644 --- a/odb-tests/common/const-object/testscript +++ b/odb-tests/common/const-object/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/container/basics/testscript b/odb-tests/common/container/basics/testscript index 644231b..9e6bfb9 100644 --- a/odb-tests/common/container/basics/testscript +++ b/odb-tests/common/container/basics/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/container/change-tracking/testscript b/odb-tests/common/container/change-tracking/testscript index bd585a6..d690a30 100644 --- a/odb-tests/common/container/change-tracking/testscript +++ b/odb-tests/common/container/change-tracking/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/ctor/testscript b/odb-tests/common/ctor/testscript index e786073..60bf027 100644 --- a/odb-tests/common/ctor/testscript +++ b/odb-tests/common/ctor/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/default/testscript b/odb-tests/common/default/testscript index e71da52..47ab5ec 100644 --- a/odb-tests/common/default/testscript +++ b/odb-tests/common/default/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/definition/testscript b/odb-tests/common/definition/testscript index d825d37..5d59884 100644 --- a/odb-tests/common/definition/testscript +++ b/odb-tests/common/definition/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/enum/testscript b/odb-tests/common/enum/testscript index 417663c..fbf1a99 100644 --- a/odb-tests/common/enum/testscript +++ b/odb-tests/common/enum/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/erase-query/testscript b/odb-tests/common/erase-query/testscript index f0d6cfd..bdb7fac 100644 --- a/odb-tests/common/erase-query/testscript +++ b/odb-tests/common/erase-query/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/id/auto/testscript b/odb-tests/common/id/auto/testscript index 9e3aac8..641f03d 100644 --- a/odb-tests/common/id/auto/testscript +++ b/odb-tests/common/id/auto/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/id/composite/testscript b/odb-tests/common/id/composite/testscript index 75891ec..b74abdb 100644 --- a/odb-tests/common/id/composite/testscript +++ b/odb-tests/common/id/composite/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/id/nested/testscript b/odb-tests/common/id/nested/testscript index d6c4c43..cc8f251 100644 --- a/odb-tests/common/id/nested/testscript +++ b/odb-tests/common/id/nested/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/include/testscript b/odb-tests/common/include/testscript index 4c7219f..c2697f5 100644 --- a/odb-tests/common/include/testscript +++ b/odb-tests/common/include/testscript @@ -30,6 +30,15 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/index/testscript b/odb-tests/common/index/testscript index e5cf55d..1355726 100644 --- a/odb-tests/common/index/testscript +++ b/odb-tests/common/index/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/inheritance/polymorphism/testscript b/odb-tests/common/inheritance/polymorphism/testscript index dbe4b41..adde79b 100644 --- a/odb-tests/common/inheritance/polymorphism/testscript +++ b/odb-tests/common/inheritance/polymorphism/testscript @@ -79,6 +79,19 @@ if $pgsql $* ($multi ? 'pgsql' : ) $pgsql_options } +: oracle +: +if $oracle +{ + .include ../../../oracle-schema.testscript + + for s: $schemas + $create_schema_cmd "@$out_base/$s"($multi ? '-oracle' : '').sql + end; + + $* ($multi ? 'oracle' : ) $oracle_options +} + : mssql : if $mssql diff --git a/odb-tests/common/inheritance/reuse/buildfile b/odb-tests/common/inheritance/reuse/buildfile index b82439a..0b7f944 100644 --- a/odb-tests/common/inheritance/reuse/buildfile +++ b/odb-tests/common/inheritance/reuse/buildfile @@ -30,8 +30,20 @@ exe{driver}: libue{test-meta} $libs # Specify the ODB custom options to be used by the odb_compile ad hoc rule # (see build/root.build for details). # -odb_options = --table-prefix inhrt_r_ \ - --generate-schema \ +# Note that the table prefix inhrt_r_, which we would normally use for this +# test, doesn't work well for Oracle. In this case ODB ends up with the +# following error: +# +# test.hxx:16:30: error: index name 'inhrt_r_empty_object_comp_bool' conflicts with an already defined index name +# test.hxx:16:30: info: index name 'inhrt_r_empty_object_comp_bool' is truncated 'inhrt_r_empty_object_comp_bools_index_i' +# test.hxx:16:30: info: conflicting index is defined here +# test.hxx:16:30: info: conflicting index name 'inhrt_r_empty_object_comp_bool' is truncated 'inhrt_r_empty_object_comp_bools_object_id_i' +# test.hxx:16:30: info: use #pragma db index to change one of the names +# +# Thus, we shorten the prefix to just i_r_. +# +odb_options = --table-prefix i_r_ \ + --generate-schema \ --generate-query cxx.poptions =+ "-I$out_base" "-I$src_base" diff --git a/odb-tests/common/inheritance/reuse/testscript b/odb-tests/common/inheritance/reuse/testscript index 6522a60..1bc20ea 100644 --- a/odb-tests/common/inheritance/reuse/testscript +++ b/odb-tests/common/inheritance/reuse/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/inheritance/transient/testscript b/odb-tests/common/inheritance/transient/testscript index 2d6a170..d15db56 100644 --- a/odb-tests/common/inheritance/transient/testscript +++ b/odb-tests/common/inheritance/transient/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/inverse/testscript b/odb-tests/common/inverse/testscript index 3b55c41..f7e9960 100644 --- a/odb-tests/common/inverse/testscript +++ b/odb-tests/common/inverse/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/lazy-ptr/testscript b/odb-tests/common/lazy-ptr/testscript index 7aa727a..023aca6 100644 --- a/odb-tests/common/lazy-ptr/testscript +++ b/odb-tests/common/lazy-ptr/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/lifecycle/testscript b/odb-tests/common/lifecycle/testscript index faf30ed..f39297b 100644 --- a/odb-tests/common/lifecycle/testscript +++ b/odb-tests/common/lifecycle/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/no-id/testscript b/odb-tests/common/no-id/testscript index dd3d74e..96b8926 100644 --- a/odb-tests/common/no-id/testscript +++ b/odb-tests/common/no-id/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/object/testscript b/odb-tests/common/object/testscript index 7bb3bb5..45737c1 100644 --- a/odb-tests/common/object/testscript +++ b/odb-tests/common/object/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/optimistic/testscript b/odb-tests/common/optimistic/testscript index b1c0b48..b9117c0 100644 --- a/odb-tests/common/optimistic/testscript +++ b/odb-tests/common/optimistic/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/pragma/testscript b/odb-tests/common/pragma/testscript index 4c7219f..c2697f5 100644 --- a/odb-tests/common/pragma/testscript +++ b/odb-tests/common/pragma/testscript @@ -30,6 +30,15 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/prepared/testscript b/odb-tests/common/prepared/testscript index 05df04f..d378a79 100644 --- a/odb-tests/common/prepared/testscript +++ b/odb-tests/common/prepared/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/query/array/buildfile b/odb-tests/common/query/array/buildfile index 3beb6d0..fcaffd4 100644 --- a/odb-tests/common/query/array/buildfile +++ b/odb-tests/common/query/array/buildfile @@ -33,8 +33,10 @@ exe{driver}: libue{test-meta} $libs odb_options = --table-prefix t_query_array_ \ --generate-schema \ --generate-query \ - --generate-prepared \ - --sql-name-case oracle:upper + --generate-prepared + +if $oracle + odb_options += --sql-name-case oracle:upper cxx.poptions =+ "-I$out_base" "-I$src_base" diff --git a/odb-tests/common/query/array/testscript b/odb-tests/common/query/array/testscript index 628d2d7..37f7158 100644 --- a/odb-tests/common/query/array/testscript +++ b/odb-tests/common/query/array/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/query/basics/testscript b/odb-tests/common/query/basics/testscript index c5d9af0..d7dcf21 100644 --- a/odb-tests/common/query/basics/testscript +++ b/odb-tests/common/query/basics/testscript @@ -149,6 +149,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/query/one/testscript b/odb-tests/common/query/one/testscript index 002e723..94ebcde 100644 --- a/odb-tests/common/query/one/testscript +++ b/odb-tests/common/query/one/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/readonly/testscript b/odb-tests/common/readonly/testscript index f2f364b..491b55b 100644 --- a/odb-tests/common/readonly/testscript +++ b/odb-tests/common/readonly/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/relationship/basics/testscript b/odb-tests/common/relationship/basics/testscript index c4df5e9..7ed44b4 100644 --- a/odb-tests/common/relationship/basics/testscript +++ b/odb-tests/common/relationship/basics/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/relationship/on-delete/testscript b/odb-tests/common/relationship/on-delete/testscript index 5a48bb6..5777084 100644 --- a/odb-tests/common/relationship/on-delete/testscript +++ b/odb-tests/common/relationship/on-delete/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/relationship/query/testscript b/odb-tests/common/relationship/query/testscript index 0fa5ec5..41e959b 100644 --- a/odb-tests/common/relationship/query/testscript +++ b/odb-tests/common/relationship/query/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/schema/embedded/basics/testscript b/odb-tests/common/schema/embedded/basics/testscript index ef58fc0..6affa13 100644 --- a/odb-tests/common/schema/embedded/basics/testscript +++ b/odb-tests/common/schema/embedded/basics/testscript @@ -30,6 +30,15 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../../oracle.testscript + + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/schema/embedded/order/testscript b/odb-tests/common/schema/embedded/order/testscript index 5257d87..131b3fa 100644 --- a/odb-tests/common/schema/embedded/order/testscript +++ b/odb-tests/common/schema/embedded/order/testscript @@ -30,6 +30,15 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../../oracle.testscript + + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/schema/namespace/testscript b/odb-tests/common/schema/namespace/testscript index 9e4cd78..a2edd8d 100644 --- a/odb-tests/common/schema/namespace/testscript +++ b/odb-tests/common/schema/namespace/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/section/basics/testscript b/odb-tests/common/section/basics/testscript index e49828a..bf7d1db 100644 --- a/odb-tests/common/section/basics/testscript +++ b/odb-tests/common/section/basics/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/section/polymorphism/testscript b/odb-tests/common/section/polymorphism/testscript index 55f5028..9fd2310 100644 --- a/odb-tests/common/section/polymorphism/testscript +++ b/odb-tests/common/section/polymorphism/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/session/cache/testscript b/odb-tests/common/session/cache/testscript index 351dfda..da4e134 100644 --- a/odb-tests/common/session/cache/testscript +++ b/odb-tests/common/session/cache/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/session/custom/testscript b/odb-tests/common/session/custom/testscript index 47efed9..c3f3e06 100644 --- a/odb-tests/common/session/custom/testscript +++ b/odb-tests/common/session/custom/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/threads/testscript b/odb-tests/common/threads/testscript index 18eb88f..0d619ab 100644 --- a/odb-tests/common/threads/testscript +++ b/odb-tests/common/threads/testscript @@ -49,6 +49,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/transaction/basics/testscript b/odb-tests/common/transaction/basics/testscript index ae24106..873f471 100644 --- a/odb-tests/common/transaction/basics/testscript +++ b/odb-tests/common/transaction/basics/testscript @@ -61,6 +61,15 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/transaction/callback/testscript b/odb-tests/common/transaction/callback/testscript index 9ff0a89..715d49a 100644 --- a/odb-tests/common/transaction/callback/testscript +++ b/odb-tests/common/transaction/callback/testscript @@ -71,6 +71,15 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/view/basics/testscript b/odb-tests/common/view/basics/testscript index 3b03534..7c69c0c 100644 --- a/odb-tests/common/view/basics/testscript +++ b/odb-tests/common/view/basics/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/view/olv/testscript b/odb-tests/common/view/olv/testscript index 865338e..5189f19 100644 --- a/odb-tests/common/view/olv/testscript +++ b/odb-tests/common/view/olv/testscript @@ -38,6 +38,19 @@ if $pgsql $* ($multi ? 'pgsql' : ) $pgsql_options } +: oracle +: +if $oracle +{ + .include ../../../oracle-schema.testscript + + for s: $schemas + $create_schema_cmd "@$out_base/$s"($multi ? '-oracle' : '').sql + end; + + $* ($multi ? 'oracle' : ) $oracle_options +} + : mssql : if $mssql diff --git a/odb-tests/common/virtual/testscript b/odb-tests/common/virtual/testscript index 508da6d..afdb4fb 100644 --- a/odb-tests/common/virtual/testscript +++ b/odb-tests/common/virtual/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/common/wrapper/testscript b/odb-tests/common/wrapper/testscript index a5aa392..31c3a97 100644 --- a/odb-tests/common/wrapper/testscript +++ b/odb-tests/common/wrapper/testscript @@ -32,6 +32,16 @@ if $pgsql $* } +: oracle +: +if $oracle +{ + .include ../../oracle.testscript + + $create_schema; + $* +} + : mssql : if $mssql diff --git a/odb-tests/database-options.testscript b/odb-tests/database-options.testscript index 5a2c3dd..68d2c34 100644 --- a/odb-tests/database-options.testscript +++ b/odb-tests/database-options.testscript @@ -69,6 +69,43 @@ end export PGOPTIONS=--client-min-messages=warning end ++if $oracle + oracle_options = --user $config.odb_tests.oracle.user + + oracle_client_options = -L -S + oracle_logon = $config.odb_tests.oracle.user + + if $defined(config.odb_tests.oracle.passwd) + oracle_options += --password $config.odb_tests.oracle.passwd + oracle_logon = "$oracle_logon/$config.odb_tests.oracle.passwd" + end + + if ($defined(config.odb_tests.oracle.host) || \ + $defined(config.odb_tests.oracle.port)) + if $defined(config.odb_tests.oracle.host) + oracle_options += --host $config.odb_tests.oracle.host + oracle_logon = "$oracle_logon@//$config.odb_tests.oracle.host" + else + oracle_logon = "$oracle_logon@//localhost" + end + + if $defined(config.odb_tests.oracle.port) + oracle_options += --port $config.odb_tests.oracle.port + oracle_logon = "$oracle_logon:$config.odb_tests.oracle.port" + end + + if $defined(config.odb_tests.oracle.service) + oracle_options += --service $config.odb_tests.oracle.service + oracle_logon = "$oracle_logon/$config.odb_tests.oracle.service" + end + elif $defined(config.odb_tests.oracle.service) + oracle_options += --service $config.odb_tests.oracle.service + oracle_logon = "$oracle_logon@$config.odb_tests.oracle.service" + end + + oracle_client_cmd = $path($oracle_client) $oracle_client_options $oracle_logon +end + +if $mssql mssql_options = --user $config.odb_tests.mssql.user \ --database $config.odb_tests.mssql.database diff --git a/odb-tests/evolution/add-column/driver.cxx b/odb-tests/evolution/add-column/driver.cxx index c729732..c9a7263 100644 --- a/odb-tests/evolution/add-column/driver.cxx +++ b/odb-tests/evolution/add-column/driver.cxx @@ -31,7 +31,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_add_c_sv"); + db->schema_version_table (quote_name ("evo_add_c_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/add-column/testscript b/odb-tests/evolution/add-column/testscript index fc1e4d8..4741109 100644 --- a/odb-tests/evolution/add-column/testscript +++ b/odb-tests/evolution/add-column/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/add-foreign-key/driver.cxx b/odb-tests/evolution/add-foreign-key/driver.cxx index dae9a9c..735166f 100644 --- a/odb-tests/evolution/add-foreign-key/driver.cxx +++ b/odb-tests/evolution/add-foreign-key/driver.cxx @@ -32,7 +32,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_add_fk_sv"); + db->schema_version_table (quote_name ("evo_add_fk_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/add-foreign-key/testscript b/odb-tests/evolution/add-foreign-key/testscript index a1ce1c4..9ea393f 100644 --- a/odb-tests/evolution/add-foreign-key/testscript +++ b/odb-tests/evolution/add-foreign-key/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/add-index/driver.cxx b/odb-tests/evolution/add-index/driver.cxx index 679aa4c..6b1d15e 100644 --- a/odb-tests/evolution/add-index/driver.cxx +++ b/odb-tests/evolution/add-index/driver.cxx @@ -31,7 +31,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_add_i_sv"); + db->schema_version_table (quote_name ("evo_add_i_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/add-index/testscript b/odb-tests/evolution/add-index/testscript index d369602..e71352a 100644 --- a/odb-tests/evolution/add-index/testscript +++ b/odb-tests/evolution/add-index/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/add-table/driver.cxx b/odb-tests/evolution/add-table/driver.cxx index 36f4d15..1793553 100644 --- a/odb-tests/evolution/add-table/driver.cxx +++ b/odb-tests/evolution/add-table/driver.cxx @@ -32,7 +32,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_add_t_sv"); + db->schema_version_table (quote_name ("evo_add_t_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/add-table/testscript b/odb-tests/evolution/add-table/testscript index 9c63aca..fad1225 100644 --- a/odb-tests/evolution/add-table/testscript +++ b/odb-tests/evolution/add-table/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/alter-column/driver.cxx b/odb-tests/evolution/alter-column/driver.cxx index f307546..cf7cbc3 100644 --- a/odb-tests/evolution/alter-column/driver.cxx +++ b/odb-tests/evolution/alter-column/driver.cxx @@ -31,7 +31,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_alter_c_sv"); + db->schema_version_table (quote_name ("evo_alter_c_sv")); // SQLite doesn't support altering of columns. // diff --git a/odb-tests/evolution/alter-column/testscript b/odb-tests/evolution/alter-column/testscript index 18d2c62..ff8f9a6 100644 --- a/odb-tests/evolution/alter-column/testscript +++ b/odb-tests/evolution/alter-column/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/combined/driver.cxx b/odb-tests/evolution/combined/driver.cxx index 027bddd..2b77437 100644 --- a/odb-tests/evolution/combined/driver.cxx +++ b/odb-tests/evolution/combined/driver.cxx @@ -31,7 +31,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_comb_sv"); + db->schema_version_table (quote_name ("evo_comb_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/combined/testscript b/odb-tests/evolution/combined/testscript index f141bf0..118e43b 100644 --- a/odb-tests/evolution/combined/testscript +++ b/odb-tests/evolution/combined/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/data/driver.cxx b/odb-tests/evolution/data/driver.cxx index 966c72e..685f556 100644 --- a/odb-tests/evolution/data/driver.cxx +++ b/odb-tests/evolution/data/driver.cxx @@ -72,7 +72,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_data_sv"); + db->schema_version_table (quote_name ("evo_data_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/data/testscript b/odb-tests/evolution/data/testscript index 4f98b4d..dddc909 100644 --- a/odb-tests/evolution/data/testscript +++ b/odb-tests/evolution/data/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/drop-column/driver.cxx b/odb-tests/evolution/drop-column/driver.cxx index 6f2a735..6f3008b 100644 --- a/odb-tests/evolution/drop-column/driver.cxx +++ b/odb-tests/evolution/drop-column/driver.cxx @@ -31,7 +31,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_drop_c_sv"); + db->schema_version_table (quote_name ("evo_drop_c_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/drop-column/testscript b/odb-tests/evolution/drop-column/testscript index 8cf20b0..8286788 100644 --- a/odb-tests/evolution/drop-column/testscript +++ b/odb-tests/evolution/drop-column/testscript @@ -6,6 +6,7 @@ test.arguments += $($(db)_options) + : basics : if! $sqlite @@ -35,6 +36,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/drop-foreign-key/driver.cxx b/odb-tests/evolution/drop-foreign-key/driver.cxx index c2829c4..5556cce 100644 --- a/odb-tests/evolution/drop-foreign-key/driver.cxx +++ b/odb-tests/evolution/drop-foreign-key/driver.cxx @@ -31,7 +31,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_drop_fk_sv"); + db->schema_version_table (quote_name ("evo_drop_fk_sv")); // SQLite doesn't support dropping of foreign keys. // diff --git a/odb-tests/evolution/drop-foreign-key/testscript b/odb-tests/evolution/drop-foreign-key/testscript index 1902e60..f48e801 100644 --- a/odb-tests/evolution/drop-foreign-key/testscript +++ b/odb-tests/evolution/drop-foreign-key/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/drop-index/driver.cxx b/odb-tests/evolution/drop-index/driver.cxx index 515591d..2b06ca7 100644 --- a/odb-tests/evolution/drop-index/driver.cxx +++ b/odb-tests/evolution/drop-index/driver.cxx @@ -31,7 +31,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_drop_i_sv"); + db->schema_version_table (quote_name ("evo_drop_i_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/drop-index/testscript b/odb-tests/evolution/drop-index/testscript index 19e9a47..0fb21ba 100644 --- a/odb-tests/evolution/drop-index/testscript +++ b/odb-tests/evolution/drop-index/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/drop-table/driver.cxx b/odb-tests/evolution/drop-table/driver.cxx index 8ef2e47..74407da 100644 --- a/odb-tests/evolution/drop-table/driver.cxx +++ b/odb-tests/evolution/drop-table/driver.cxx @@ -31,7 +31,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_drop_t_sv"); + db->schema_version_table (quote_name ("evo_drop_t_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/drop-table/testscript b/odb-tests/evolution/drop-table/testscript index 6672e0f..6263168 100644 --- a/odb-tests/evolution/drop-table/testscript +++ b/odb-tests/evolution/drop-table/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/embedded/driver.cxx b/odb-tests/evolution/embedded/driver.cxx index ac317cc..2bdb2d1 100644 --- a/odb-tests/evolution/embedded/driver.cxx +++ b/odb-tests/evolution/embedded/driver.cxx @@ -36,7 +36,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_embedded_sv"); + db->schema_version_table (quote_name ("evo_embedded_sv")); // 1 - base version // 2 - migration diff --git a/odb-tests/evolution/soft-add/driver.cxx b/odb-tests/evolution/soft-add/driver.cxx index a18c6a2..3bd5f1f 100644 --- a/odb-tests/evolution/soft-add/driver.cxx +++ b/odb-tests/evolution/soft-add/driver.cxx @@ -32,7 +32,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_soft_a_sv"); + db->schema_version_table (quote_name ("evo_soft_a_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/soft-add/testscript b/odb-tests/evolution/soft-add/testscript index 67c48e7..5c26645 100644 --- a/odb-tests/evolution/soft-add/testscript +++ b/odb-tests/evolution/soft-add/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/soft-delete/driver.cxx b/odb-tests/evolution/soft-delete/driver.cxx index ea9e7f0..edc5db6 100644 --- a/odb-tests/evolution/soft-delete/driver.cxx +++ b/odb-tests/evolution/soft-delete/driver.cxx @@ -32,7 +32,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_soft_d_sv"); + db->schema_version_table (quote_name ("evo_soft_d_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/soft-delete/testscript b/odb-tests/evolution/soft-delete/testscript index 4bea5c6..63e81e6 100644 --- a/odb-tests/evolution/soft-delete/testscript +++ b/odb-tests/evolution/soft-delete/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/evolution/version/driver.cxx b/odb-tests/evolution/version/driver.cxx index cc1b4b9..91aaeaa 100644 --- a/odb-tests/evolution/version/driver.cxx +++ b/odb-tests/evolution/version/driver.cxx @@ -32,7 +32,7 @@ main (int argc, char* argv[]) { unique_ptr db (create_database (argc, argv, false)); - db->schema_version_table ("evo_version_sv"); + db->schema_version_table (quote_name ("evo_version_sv")); bool embedded (schema_catalog::exists (*db)); diff --git a/odb-tests/evolution/version/testscript b/odb-tests/evolution/version/testscript index 36ae5f2..08290ae 100644 --- a/odb-tests/evolution/version/testscript +++ b/odb-tests/evolution/version/testscript @@ -35,6 +35,8 @@ if! $sqlite cat $f | $create_schema_cmd elif $pgsql $create_schema_cmd -f $f + elif $oracle + $create_schema_cmd "@$f" elif $mssql $create_schema_cmd -i $f end diff --git a/odb-tests/libcommon/common.cxx b/odb-tests/libcommon/common.cxx index ba2e5da..0e6fe55 100644 --- a/odb-tests/libcommon/common.cxx +++ b/odb-tests/libcommon/common.cxx @@ -350,6 +350,26 @@ create_database (int argc, #endif } +#ifndef MULTI_DATABASE +std::string +quote_name (const std::string& name) +{ +#if defined(DATABASE_MYSQL) + return '`' + name + '`'; +#elif defined(DATABASE_SQLITE) + return '"' + name + '"'; +#elif defined(DATABASE_PGSQL) + return '"' + name + '"'; +#elif defined(DATABASE_ORACLE) + return '"' + name + '"'; +#elif defined(DATABASE_MSSQL) + return '[' + name + ']'; +#else +# error unknown database +#endif +} +#endif + bool size_available () { diff --git a/odb-tests/libcommon/common.hxx b/odb-tests/libcommon/common.hxx index 9ab978d..904bfc6 100644 --- a/odb-tests/libcommon/common.hxx +++ b/odb-tests/libcommon/common.hxx @@ -35,6 +35,9 @@ create_specific_database (int argc, return std::unique_ptr (&dynamic_cast (*r.release ())); } +LIBCOMMON_SYMEXPORT std::string +quote_name (const std::string&); + // This function returns an accurate result only if the result iterator // hasn't been advanced and after the call the result is no longer valid. // diff --git a/odb-tests/manifest b/odb-tests/manifest index 10e7d1e..3bf8cb2 100644 --- a/odb-tests/manifest +++ b/odb-tests/manifest @@ -46,6 +46,7 @@ depends: libpq >= 14.0.0 ? ($pgsql) config.odb_tests.pgsql.bulk_default=true | \ depends: * mysql-client >= 5.0.3 ? ($mysql) depends: * psql >= 7.4.0 ? ($pgsql) +requires: * sqlplus ? ($oracle) requires: * sqlcmd ? ($mssql) # This package configuration is for building with the default bots on target @@ -74,6 +75,10 @@ custom-multi-builds: latest custom-multi-builds: -static ; Implementation uses plugins and requires -fPIC. #custom-multi-build-bot: -- see below. +custom-multi-oracle-builds: latest +custom-multi-oracle-builds: -static ; Implementation uses plugins and requires -fPIC. +#custom-multi-oracle-build-bot: -- see below. + custom-multi-mssql-builds: latest custom-multi-mssql-builds: -static ; Implementation uses plugins and requires -fPIC. #custom-multi-mssql-build-bot: -- see below. @@ -150,6 +155,42 @@ dpHDhOthPLolJQrYKb/YyW8CAwEAAQ== -----END PUBLIC KEY----- \ +custom-multi-oracle-build-bot: +\ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M +lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H +8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe +uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X +X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3 +NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE +nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL +zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY +5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD +5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np +f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv +9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ== +-----END PUBLIC KEY----- +\ + +custom-multi-oracle-build-bot: +\ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuLYZ68rotGDAtWViFHOe +XEsmZB8BGI+af1ixh9JOy9BE4ohGTfPr1YsjGDzh+PhOVLAtyykOoT/qG7cuGB0T +gBInoRrgVB2/ZKTMwxeDGb/TA3uykaXxcw7/liTsizHAY+phCNTbke8iER5Y78js +9GlnTPmNhwFqEj2fwCz+2o08eyZvZ9Vj1fH/bFDCmDmU33JR3crtJlC8wPiF70Ho +FJzHFdaFQl3MxvEV92HjOsyqozMi6tAVVefN1vapVQeNtjkB0Di18p0/EMugEuGU +OxktjDHQWNaV8Ao6cCDk6OkJnM3ZNL1no3cV4cuF+/xI8UZzwfPoBnwg/s183Qzu +pHHKOSHmuO0oVE/XohJhepSw3tb+wf5BwejRhYHikIjqCxJdm9H0QTiqXT82y24K +yg3gkRMOgqnVxERKKP4ZknLSMQCEKiND/t2zdLJ/lxH9eHZdPHKk3OZZG292j+Bh +fknxcTKNk1Dmf32Irs5hVrjsoU8eAutbItovzXdBaj//rn/ry/kUlCa1Ov6iLIDJ +gyxmsDlgKNR/uE9ogmDn0ishJIoCmxeqenRfJkttr9pEsDsUFuB425QGqiSxa1jh +PCNca3iRtO44wADXaQMTGpvLzBfdfVc8LoFpn+kynN0V1MvxAX4mHRXxw8ERXd3U +dpHDhOthPLolJQrYKb/YyW8CAwEAAQ== +-----END PUBLIC KEY----- +\ + custom-multi-mssql-build-bot: \ -----BEGIN PUBLIC KEY----- diff --git a/odb-tests/oracle-schema.testscript b/odb-tests/oracle-schema.testscript new file mode 100644 index 0000000..29a95f1 --- /dev/null +++ b/odb-tests/oracle-schema.testscript @@ -0,0 +1,6 @@ +# file : oracle-schema.testscript +# license : GNU GPL v2; see accompanying LICENSE file + +# Create the Oracle database schema creation canned command base. +# +create_schema_cmd = [cmdline] $oracle_client_cmd diff --git a/odb-tests/oracle.testscript b/odb-tests/oracle.testscript new file mode 100644 index 0000000..ee12494 --- /dev/null +++ b/odb-tests/oracle.testscript @@ -0,0 +1,12 @@ +# file : oracle.testscript +# license : GNU GPL v2; see accompanying LICENSE file + +# Create the Oracle database schema creation canned command and setup the test +# driver command line for the subsequent tests. +# +.include oracle-schema.testscript + +schema_file = [path] $out_base/"$schema"($multi ? '-oracle' : '').sql +create_schema = [cmdline] $create_schema_cmd "@$schema_file" + +test.arguments += ($multi ? 'oracle' : ) $oracle_options diff --git a/odb-tests/oracle/custom/buildfile b/odb-tests/oracle/custom/buildfile new file mode 100644 index 0000000..db901c3 --- /dev/null +++ b/odb-tests/oracle/custom/buildfile @@ -0,0 +1,36 @@ +# file : oracle/custom/buildfile +# license : GNU GPL v2; see accompanying LICENSE file + +if ($build.meta_operation != 'dist') +{ + assert ($oracle) "oracle should be configured for this test" + assert (!$multi) "multi-database mode is not supported by this test" +} + +import libodb = libodb%lib{odb} + +import libs = libodb-oracle%lib{odb-oracle} +import libs += lib{common} + +exe{driver}: {hxx cxx}{* -*-odb} {hxx ixx cxx}{test-odb} sql{custom} testscript + +# Introduce the metadata library target to make sure the libodb library is +# resolved for the odb_compile ad hoc rule (see build/root.build for details). +# +libue{test-meta}: $libodb + +<{hxx ixx cxx}{test-odb}>: hxx{test} libue{test-meta} + +exe{driver}: libue{test-meta} $libs + +# Specify the ODB custom options to be used by the odb_compile ad hoc rule +# (see build/root.build for details). +# +odb_options = --table-prefix oracle_custom_ \ + --generate-schema \ + --default-database common \ + --generate-query \ + --hxx-prologue '#include "traits.hxx"' \ + --sql-interlude "@ $src_base/custom.sql" + +cxx.poptions =+ "-I$out_base" "-I$src_base" diff --git a/odb-tests/oracle/custom/driver.cxx b/odb-tests/oracle/custom/driver.cxx index 45f0a4e..16439d1 100644 --- a/odb-tests/oracle/custom/driver.cxx +++ b/odb-tests/oracle/custom/driver.cxx @@ -4,18 +4,20 @@ // Test custom database type mapping in Oracle. // -#include // std::auto_ptr -#include +#include // std::unique_ptr #include #include #include -#include +#include #include "test.hxx" #include "test-odb.hxx" +#undef NDEBUG +#include + using namespace std; namespace oracle = odb::oracle; using namespace oracle; @@ -25,7 +27,7 @@ main (int argc, char* argv[]) { try { - auto_ptr db (create_specific_database (argc, argv)); + unique_ptr db (create_specific_database (argc, argv)); object o (1); o.iv.push_back (123); @@ -44,7 +46,7 @@ main (int argc, char* argv[]) // { transaction t (db->begin ()); - auto_ptr o1 (db->load (1)); + unique_ptr o1 (db->load (1)); t.commit (); assert (o == *o1); @@ -63,7 +65,7 @@ main (int argc, char* argv[]) { transaction t (db->begin ()); - auto_ptr o1 (db->load (1)); + unique_ptr o1 (db->load (1)); t.commit (); assert (o == *o1); diff --git a/odb-tests/oracle/custom/testscript b/odb-tests/oracle/custom/testscript new file mode 100644 index 0000000..e39b328 --- /dev/null +++ b/odb-tests/oracle/custom/testscript @@ -0,0 +1,11 @@ +# file : oracle/custom/testscript +# license : GNU GPL v2; see accompanying LICENSE file + +.include ../../database-options.testscript +.include ../../oracle.testscript + ++$create_schema + +: basics +: +$* diff --git a/odb-tests/oracle/database/buildfile b/odb-tests/oracle/database/buildfile new file mode 100644 index 0000000..59b025d --- /dev/null +++ b/odb-tests/oracle/database/buildfile @@ -0,0 +1,14 @@ +# file : oracle/database/buildfile +# license : GNU GPL v2; see accompanying LICENSE file + +if ($build.meta_operation != 'dist') +{ + assert ($oracle) "oracle should be configured for this test" + assert (!$multi) "multi-database mode is not supported by this test" +} + +import libs = libodb-oracle%lib{odb-oracle} + +exe{driver}: {hxx cxx}{*} $libs testscript + +cxx.poptions =+ "-I$out_base" "-I$src_base" diff --git a/odb-tests/oracle/database/testscript b/odb-tests/oracle/database/testscript new file mode 100644 index 0000000..d2b8281 --- /dev/null +++ b/odb-tests/oracle/database/testscript @@ -0,0 +1,9 @@ +# file : oracle/database/testscript +# license : GNU GPL v2; see accompanying LICENSE file + +.include ../../database-options.testscript +.include ../../oracle.testscript + +: basics +: +$* diff --git a/odb-tests/oracle/native/buildfile b/odb-tests/oracle/native/buildfile new file mode 100644 index 0000000..f7d1ec4 --- /dev/null +++ b/odb-tests/oracle/native/buildfile @@ -0,0 +1,15 @@ +# file : oracle/native/buildfile +# license : GNU GPL v2; see accompanying LICENSE file + +if ($build.meta_operation != 'dist') +{ + assert ($oracle) "oracle should be configured for this test" + assert (!$multi) "multi-database mode is not supported by this test" +} + +import libs = libodb-oracle%lib{odb-oracle} +import libs += lib{common} + +exe{driver}: {hxx cxx}{*} $libs testscript + +cxx.poptions =+ "-I$out_base" "-I$src_base" diff --git a/odb-tests/oracle/native/driver.cxx b/odb-tests/oracle/native/driver.cxx index 541d21e..5aa6222 100644 --- a/odb-tests/oracle/native/driver.cxx +++ b/odb-tests/oracle/native/driver.cxx @@ -4,14 +4,16 @@ // Test native SQL execution. // -#include // std::auto_ptr -#include +#include // std::unique_ptr #include #include #include -#include +#include + +#undef NDEBUG +#include using namespace std; namespace oracle = odb::oracle; @@ -22,7 +24,7 @@ main (int argc, char* argv[]) { try { - auto_ptr db (create_specific_database (argc, argv)); + unique_ptr db (create_specific_database (argc, argv)); // Create the database schema. // diff --git a/odb-tests/oracle/native/testscript b/odb-tests/oracle/native/testscript new file mode 100644 index 0000000..fed469c --- /dev/null +++ b/odb-tests/oracle/native/testscript @@ -0,0 +1,9 @@ +# file : oracle/native/testscript +# license : GNU GPL v2; see accompanying LICENSE file + +.include ../../database-options.testscript +.include ../../oracle.testscript + +: basics +: +$* diff --git a/odb-tests/oracle/template/driver.cxx b/odb-tests/oracle/template/driver.cxx deleted file mode 100644 index 13317df..0000000 --- a/odb-tests/oracle/template/driver.cxx +++ /dev/null @@ -1,40 +0,0 @@ -// file : oracle/template/driver.cxx -// license : GNU GPL v2; see accompanying LICENSE file - -// PLACE TEST DESCRIPTION HERE -// - -#include // std::auto_ptr -#include -#include - -#include -#include - -#include - -#include "test.hxx" -#include "test-odb.hxx" - -using namespace std; -namespace oracle = odb::oracle; -using namespace oracle; - -int -main (int argc, char* argv[]) -{ - try - { - auto_ptr db (create_specific_database (argc, argv)); - - { - transaction t (db->begin ()); - t.commit (); - } - } - catch (const odb::exception& e) - { - cerr << e.what () << endl; - return 1; - } -} diff --git a/odb-tests/oracle/template/template-vc10.vcxproj b/odb-tests/oracle/template/template-vc10.vcxproj deleted file mode 100644 index 92066cf..0000000 --- a/odb-tests/oracle/template/template-vc10.vcxproj +++ /dev/null @@ -1,180 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {__uuid__()} - Win32Proj - __value__(name) - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\ - driver - - - true - $(Platform)\$(Configuration)\ - driver - - - false - $(Configuration)\ - driver - - - false - $(Platform)\$(Configuration)\ - driver - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - - - $(SolutionDir)\..\libcommon\lib\common-d.lib;odb-oracle-d.lib;odb-d.lib;%(AdditionalDependencies) - Console - true - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - - - $(SolutionDir)\..\libcommon\lib64\common-d.lib;odb-oracle-d.lib;odb-d.lib;%(AdditionalDependencies) - Console - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - - - $(SolutionDir)\..\libcommon\lib\common.lib;odb-oracle.lib;odb.lib;%(AdditionalDependencies) - Console - true - true - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - - - $(SolutionDir)\..\libcommon\lib64\common.lib;odb-oracle.lib;odb.lib;%(AdditionalDependencies) - Console - true - true - true - - -__ifelse__(__value__(odb_options),,, -m4_dnl - -__custom_build_entry__( -test.hxx, -odb test.hxx, -odb.exe --std c++11 __xml__(__shell_quotes__(m4_patsubst(__value__(odb_options), __value__(src_base)/, ) -DHAVE_CONFIG_VC_H -DODB_MSC_VER=1600 -I$(SolutionDir)\..\libcommon)) test.hxx, -test-odb.hxx;test-odb.ixx;test-odb.cxx) - ) - -__ifelse__(__value__(odb_options),,, -__header_entry__(test-odb.hxx) -__header_entry__(test-odb.ixx)) -__header_entries__(extra_headers) - - -__source_entry__(driver.cxx) -__ifelse__(__value__(odb_options),,,__source_entry__(test-odb.cxx)) -__source_entries__(extra_sources) - - - - - diff --git a/odb-tests/oracle/template/template-vc10.vcxproj.filters b/odb-tests/oracle/template/template-vc10.vcxproj.filters deleted file mode 100644 index 8ac18a3..0000000 --- a/odb-tests/oracle/template/template-vc10.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {__uuid__()} - cxx - - - {__uuid__()} - h;hxx;ixx;txx - - - -__ifelse__(__value__(odb_options),,, -__header_filter_entry__(test.hxx) -__header_filter_entry__(test-odb.hxx) -__header_filter_entry__(test-odb.ixx)) -__header_filter_entries__(extra_headers) - - -__source_filter_entry__(driver.cxx) -__ifelse__(__value__(odb_options),,,__source_filter_entry__(test-odb.cxx)) -__source_filter_entries__(extra_sources) - - \ No newline at end of file diff --git a/odb-tests/oracle/template/template-vc11.vcxproj b/odb-tests/oracle/template/template-vc11.vcxproj deleted file mode 100644 index a92e437..0000000 --- a/odb-tests/oracle/template/template-vc11.vcxproj +++ /dev/null @@ -1,184 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {__uuid__()} - Win32Proj - __value__(name) - - - - Application - true - v110 - Unicode - - - Application - true - v110 - Unicode - - - Application - false - v110 - true - Unicode - - - Application - false - v110 - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\ - driver - - - true - $(Platform)\$(Configuration)\ - driver - - - false - $(Configuration)\ - driver - - - false - $(Platform)\$(Configuration)\ - driver - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - - - $(SolutionDir)\..\libcommon\lib\common-d.lib;odb-oracle-d.lib;odb-d.lib;%(AdditionalDependencies) - Console - true - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - - - $(SolutionDir)\..\libcommon\lib64\common-d.lib;odb-oracle-d.lib;odb-d.lib;%(AdditionalDependencies) - Console - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - - - $(SolutionDir)\..\libcommon\lib\common.lib;odb-oracle.lib;odb.lib;%(AdditionalDependencies) - Console - true - true - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - - - $(SolutionDir)\..\libcommon\lib64\common.lib;odb-oracle.lib;odb.lib;%(AdditionalDependencies) - Console - true - true - true - - -__ifelse__(__value__(odb_options),,, -m4_dnl - -__custom_build_entry__( -test.hxx, -odb test.hxx, -odb.exe --std c++11 __xml__(__shell_quotes__(m4_patsubst(__value__(odb_options), __value__(src_base)/, ) -DHAVE_CONFIG_VC_H -DODB_MSC_VER=1700 -I$(SolutionDir)\..\libcommon)) test.hxx, -test-odb.hxx;test-odb.ixx;test-odb.cxx) - ) - -__ifelse__(__value__(odb_options),,, -__header_entry__(test-odb.hxx) -__header_entry__(test-odb.ixx)) -__header_entries__(extra_headers) - - -__source_entry__(driver.cxx) -__ifelse__(__value__(odb_options),,,__source_entry__(test-odb.cxx)) -__source_entries__(extra_sources) - - - - - diff --git a/odb-tests/oracle/template/template-vc11.vcxproj.filters b/odb-tests/oracle/template/template-vc11.vcxproj.filters deleted file mode 100644 index 8ac18a3..0000000 --- a/odb-tests/oracle/template/template-vc11.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {__uuid__()} - cxx - - - {__uuid__()} - h;hxx;ixx;txx - - - -__ifelse__(__value__(odb_options),,, -__header_filter_entry__(test.hxx) -__header_filter_entry__(test-odb.hxx) -__header_filter_entry__(test-odb.ixx)) -__header_filter_entries__(extra_headers) - - -__source_filter_entry__(driver.cxx) -__ifelse__(__value__(odb_options),,,__source_filter_entry__(test-odb.cxx)) -__source_filter_entries__(extra_sources) - - \ No newline at end of file diff --git a/odb-tests/oracle/template/template-vc12.vcxproj b/odb-tests/oracle/template/template-vc12.vcxproj deleted file mode 100644 index de35c03..0000000 --- a/odb-tests/oracle/template/template-vc12.vcxproj +++ /dev/null @@ -1,188 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {__uuid__()} - Win32Proj - __value__(name) - - - - Application - true - v120 - Unicode - - - Application - true - v120 - Unicode - - - Application - false - v120 - true - Unicode - - - Application - false - v120 - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\ - driver - - - true - $(Platform)\$(Configuration)\ - driver - - - false - $(Configuration)\ - driver - - - false - $(Platform)\$(Configuration)\ - driver - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - true - - - $(SolutionDir)\..\libcommon\lib\common-d.lib;odb-oracle-d.lib;odb-d.lib;%(AdditionalDependencies) - Console - true - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - true - - - $(SolutionDir)\..\libcommon\lib64\common-d.lib;odb-oracle-d.lib;odb-d.lib;%(AdditionalDependencies) - Console - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - true - - - $(SolutionDir)\..\libcommon\lib\common.lib;odb-oracle.lib;odb.lib;%(AdditionalDependencies) - Console - true - true - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;_CONSOLE;HAVE_CONFIG_VC_H;%(PreprocessorDefinitions) - $(SolutionDir)\..\libcommon - 4068;4355;4800;4290;%(DisableSpecificWarnings) - true - - - $(SolutionDir)\..\libcommon\lib64\common.lib;odb-oracle.lib;odb.lib;%(AdditionalDependencies) - Console - true - true - true - - -__ifelse__(__value__(odb_options),,, -m4_dnl - -__custom_build_entry__( -test.hxx, -odb test.hxx, -odb.exe --std c++11 __xml__(__shell_quotes__(m4_patsubst(__value__(odb_options), __value__(src_base)/, ) -DHAVE_CONFIG_VC_H -DODB_MSC_VER=1700 -I$(SolutionDir)\..\libcommon)) test.hxx, -test-odb.hxx;test-odb.ixx;test-odb.cxx) - ) - -__ifelse__(__value__(odb_options),,, -__header_entry__(test-odb.hxx) -__header_entry__(test-odb.ixx)) -__header_entries__(extra_headers) - - -__source_entry__(driver.cxx) -__ifelse__(__value__(odb_options),,,__source_entry__(test-odb.cxx)) -__source_entries__(extra_sources) - - - - - diff --git a/odb-tests/oracle/template/template-vc12.vcxproj.filters b/odb-tests/oracle/template/template-vc12.vcxproj.filters deleted file mode 100644 index 8ac18a3..0000000 --- a/odb-tests/oracle/template/template-vc12.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {__uuid__()} - cxx - - - {__uuid__()} - h;hxx;ixx;txx - - - -__ifelse__(__value__(odb_options),,, -__header_filter_entry__(test.hxx) -__header_filter_entry__(test-odb.hxx) -__header_filter_entry__(test-odb.ixx)) -__header_filter_entries__(extra_headers) - - -__source_filter_entry__(driver.cxx) -__ifelse__(__value__(odb_options),,,__source_filter_entry__(test-odb.cxx)) -__source_filter_entries__(extra_sources) - - \ No newline at end of file diff --git a/odb-tests/oracle/template/template-vc8.vcproj b/odb-tests/oracle/template/template-vc8.vcproj deleted file mode 100644 index 71e2b52..0000000 --- a/odb-tests/oracle/template/template-vc8.vcproj +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__source_entry__(driver.cxx) -__ifelse__(__value__(odb_options),,,__source_entry__(test-odb.cxx)) -__source_entries__(extra_sources) - - -__ifelse__(__value__(odb_options),,, -__file_entry_custom_build__( -test.hxx, -odb test.hxx, -odb.exe __xml__(__shell_quotes__(m4_patsubst(__value__(odb_options), __value__(src_base)/, ) -DHAVE_CONFIG_VC_H -DODB_MSC_VER=1400 -I$(SolutionDir)\..\libcommon)) test.hxx, -test-odb.hxx;test-odb.ixx;test-odb.cxx) -__file_entry__(test-odb.hxx) -__file_entry__(test-odb.ixx)) -__file_entries__(extra_headers) - - - - - diff --git a/odb-tests/oracle/template/template-vc9.vcproj b/odb-tests/oracle/template/template-vc9.vcproj deleted file mode 100644 index de9804e..0000000 --- a/odb-tests/oracle/template/template-vc9.vcproj +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -__source_entry__(driver.cxx) -__ifelse__(__value__(odb_options),,,__source_entry__(test-odb.cxx)) -__source_entries__(extra_sources) - - -__ifelse__(__value__(odb_options),,, -__file_entry_custom_build__( -test.hxx, -odb test.hxx, -odb.exe __xml__(__shell_quotes__(m4_patsubst(__value__(odb_options), __value__(src_base)/, ) -DHAVE_CONFIG_VC_H -DODB_MSC_VER=1500 -I$(SolutionDir)\..\libcommon)) test.hxx, -test-odb.hxx;test-odb.ixx;test-odb.cxx) -__file_entry__(test-odb.hxx) -__file_entry__(test-odb.ixx)) -__file_entries__(extra_headers) - - - - - diff --git a/odb-tests/oracle/template/test.hxx b/odb-tests/oracle/template/test.hxx deleted file mode 100644 index bfa9cc9..0000000 --- a/odb-tests/oracle/template/test.hxx +++ /dev/null @@ -1,25 +0,0 @@ -// file : oracle/template/test.hxx -// license : GNU GPL v2; see accompanying LICENSE file - -#ifndef TEST_HXX -#define TEST_HXX - -#include - -#pragma db object -struct object -{ - object (unsigned long id) - : id_ (id) - { - } - - object () - { - } - - #pragma db id - unsigned long id_; -}; - -#endif // TEST_HXX diff --git a/odb-tests/oracle/types/buildfile b/odb-tests/oracle/types/buildfile new file mode 100644 index 0000000..ff8eb8d --- /dev/null +++ b/odb-tests/oracle/types/buildfile @@ -0,0 +1,35 @@ +# file : oracle/types/buildfile +# license : GNU GPL v2; see accompanying LICENSE file + +if ($build.meta_operation != 'dist') +{ + assert ($oracle) "oracle should be configured for this test" + assert (!$multi) "multi-database mode is not supported by this test" +} + +import libodb = libodb%lib{odb} + +import libs = libodb-oracle%lib{odb-oracle} +import libs += lib{common} + +exe{driver}: {hxx cxx}{* -*-odb} {hxx ixx cxx}{test-odb} testscript + +# Introduce the metadata library target to make sure the libodb library is +# resolved for the odb_compile ad hoc rule (see build/root.build for details). +# +libue{test-meta}: $libodb + +<{hxx ixx cxx}{test-odb}>: hxx{test} libue{test-meta} + +exe{driver}: libue{test-meta} $libs + +# Specify the ODB custom options to be used by the odb_compile ad hoc rule +# (see build/root.build for details). +# +odb_options = --table-prefix oracle_types_ \ + --generate-schema \ + --default-database common \ + --generate-query \ + --hxx-prologue '#include "traits.hxx"' + +cxx.poptions =+ "-I$out_base" "-I$src_base" diff --git a/odb-tests/oracle/types/driver.cxx b/odb-tests/oracle/types/driver.cxx index 2e3e2e7..2730f1a 100644 --- a/odb-tests/oracle/types/driver.cxx +++ b/odb-tests/oracle/types/driver.cxx @@ -4,18 +4,20 @@ // Test Oracle type conversion. // -#include // std::auto_ptr -#include +#include // std::unique_ptr #include #include #include -#include +#include #include "test.hxx" #include "test-odb.hxx" +#undef NDEBUG +#include + using namespace std; namespace oracle = odb::oracle; using namespace oracle; @@ -28,7 +30,7 @@ main (int argc, char* argv[]) // Create an Oracle database instance, setting both the client database // and national character set to UTF-8. // - auto_ptr db (create_specific_database (argc, argv)); + unique_ptr db (create_specific_database (argc, argv)); object o (1); @@ -85,7 +87,7 @@ main (int argc, char* argv[]) // { transaction t (db->begin ()); - auto_ptr o1 (db->load (1)); + unique_ptr o1 (db->load (1)); t.commit (); assert (o == *o1); @@ -120,7 +122,7 @@ main (int argc, char* argv[]) // { transaction t (db->begin ()); - auto_ptr o1 (db->load (1)); + unique_ptr o1 (db->load (1)); t.commit (); assert (o == *o1); @@ -157,14 +159,14 @@ main (int argc, char* argv[]) // { transaction t (db->begin ()); - auto_ptr bil1 (db->load (1)); - auto_ptr bil2 (db->load (2)); - auto_ptr bil3 (db->load (3)); - auto_ptr bil4 (db->load (4)); - auto_ptr bil5 (db->load (5)); - auto_ptr buil1 (db->load (1)); - auto_ptr buil2 (db->load (2)); - auto_ptr buil3 (db->load (3)); + unique_ptr bil1 (db->load (1)); + unique_ptr bil2 (db->load (2)); + unique_ptr bil3 (db->load (3)); + unique_ptr bil4 (db->load (4)); + unique_ptr bil5 (db->load (5)); + unique_ptr buil1 (db->load (1)); + unique_ptr buil2 (db->load (2)); + unique_ptr buil3 (db->load (3)); t.commit (); assert (bi1 == *bil1); @@ -210,8 +212,8 @@ main (int argc, char* argv[]) // { transaction t (db->begin ()); - auto_ptr p1 (db->load (1)); - auto_ptr p2 (db->load (2)); + unique_ptr p1 (db->load (1)); + unique_ptr p2 (db->load (2)); t.commit (); assert (b1 == *p1); @@ -269,11 +271,7 @@ main (int argc, char* argv[]) // { db->persist (b3); -#ifdef HAVE_CXX11 unique_ptr p (db->load (3)); -#else - auto_ptr p (db->load (3)); -#endif assert (b3 == *p); b3.blob.push_back (123); db->update (b3); @@ -347,9 +345,9 @@ main (int argc, char* argv[]) { transaction t (db->begin ()); - auto_ptr p1 (db->load (1)); - auto_ptr p2 (db->load (2)); - auto_ptr p3 (db->load (3)); + unique_ptr p1 (db->load (1)); + unique_ptr p2 (db->load (2)); + unique_ptr p3 (db->load (3)); t.commit (); assert (o1 == *p1); diff --git a/odb-tests/oracle/types/test.hxx b/odb-tests/oracle/types/test.hxx index 255bc08..ee681c4 100644 --- a/odb-tests/oracle/types/test.hxx +++ b/odb-tests/oracle/types/test.hxx @@ -4,11 +4,9 @@ #ifndef TEST_HXX #define TEST_HXX -#include // HAVE_CXX11 - #include #include -#include // std::auto_ptr +#include // std::unique_ptr #include // std::memcpy, std::str[n]cmp, std::strlen #include @@ -97,11 +95,7 @@ struct time_interval int nanosecond; }; -#ifdef HAVE_CXX11 typedef std::unique_ptr string_ptr; -#else -typedef std::auto_ptr string_ptr; -#endif typedef std::vector strings; diff --git a/odb-tests/oracle/types/testscript b/odb-tests/oracle/types/testscript new file mode 100644 index 0000000..daed1a3 --- /dev/null +++ b/odb-tests/oracle/types/testscript @@ -0,0 +1,11 @@ +# file : oracle/types/testscript +# license : GNU GPL v2; see accompanying LICENSE file + +.include ../../database-options.testscript +.include ../../oracle.testscript + ++$create_schema + +: basics +: +$* -- cgit v1.1