diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2021-03-10 18:22:29 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2021-03-10 18:22:29 +0100 |
| commit | 3c27205bf04e119483f0334d06084b4c80795cee (patch) | |
| tree | d1dd030102ce3b1d8807393f414d87bdce9b9db3 | |
| parent | 47dd37ff798d454d8e1fd00cd93478642981e2b0 (diff) | |
| download | PROJ-3c27205bf04e119483f0334d06084b4c80795cee.tar.gz PROJ-3c27205bf04e119483f0334d06084b4c80795cee.zip | |
Code cleanup: remove conditional testing of SQLITE_OPEN_URI. It is present in sqlite >= 3.11
| -rw-r--r-- | src/iso19111/factory.cpp | 10 | ||||
| -rw-r--r-- | test/unit/test_factory.cpp | 176 |
2 files changed, 74 insertions, 112 deletions
diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 1dac2535..fbe88dda 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -685,13 +685,9 @@ void DatabaseContext::Private::attachExtraDatabases( closeDB(); - sqlite3_open_v2(":memory:", &sqlite_handle_, - SQLITE_OPEN_READWRITE | SQLITE_OPEN_NOMUTEX -#ifdef SQLITE_OPEN_URI - | SQLITE_OPEN_URI -#endif - , - nullptr); + sqlite3_open_v2( + ":memory:", &sqlite_handle_, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_NOMUTEX | SQLITE_OPEN_URI, nullptr); if (!sqlite_handle_) { throw FactoryException("cannot create in memory database"); } diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index a9bb4e86..454e4f2e 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -47,8 +47,6 @@ #include <unistd.h> #endif -//#undef SQLITE_OPEN_URI - using namespace osgeo::proj::common; using namespace osgeo::proj::crs; using namespace osgeo::proj::cs; @@ -2818,125 +2816,93 @@ TEST(factory, attachExtraDatabases_none) { // --------------------------------------------------------------------------- -#ifndef SQLITE_OPEN_URI -static int MyUnlink(const std::string &filename) { -#ifdef _MSC_VER - return _unlink(filename.c_str()); -#else - return unlink(filename.c_str()); -#endif -} -#endif - -// --------------------------------------------------------------------------- - TEST(factory, attachExtraDatabases_auxiliary) { -#ifdef SQLITE_OPEN_URI - std::string auxDbName("file:proj_test_aux.db?mode=memory&cache=shared"); -#else - const char *temp = getenv("TEMP"); - if (!temp) { - temp = getenv("TMP"); - } - if (!temp) { - temp = "/tmp"; - } - std::string auxDbName(std::string(temp) + "/proj_test_aux.db"); - MyUnlink(auxDbName); -#endif + const std::string auxDbName( + "file:proj_test_aux.db?mode=memory&cache=shared"); + + sqlite3 *dbAux = nullptr; + sqlite3_open_v2( + auxDbName.c_str(), &dbAux, + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_URI, nullptr); + ASSERT_TRUE(dbAux != nullptr); + ASSERT_TRUE(sqlite3_exec(dbAux, "BEGIN", nullptr, nullptr, nullptr) == + SQLITE_OK); { - sqlite3 *dbAux = nullptr; - sqlite3_open_v2(auxDbName.c_str(), &dbAux, - SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE -#ifdef SQLITE_OPEN_URI - | SQLITE_OPEN_URI -#endif - , - nullptr); - ASSERT_TRUE(dbAux != nullptr); - ASSERT_TRUE(sqlite3_exec(dbAux, "BEGIN", nullptr, nullptr, nullptr) == - SQLITE_OK); - { - auto ctxt = DatabaseContext::create(); - const auto dbStructure = ctxt->getDatabaseStructure(); - for (const auto &sql : dbStructure) { - if (sql.find("CREATE TRIGGER") == std::string::npos) { - ASSERT_TRUE(sqlite3_exec(dbAux, sql.c_str(), nullptr, - nullptr, nullptr) == SQLITE_OK); - } + auto ctxt = DatabaseContext::create(); + const auto dbStructure = ctxt->getDatabaseStructure(); + for (const auto &sql : dbStructure) { + if (sql.find("CREATE TRIGGER") == std::string::npos) { + ASSERT_TRUE(sqlite3_exec(dbAux, sql.c_str(), nullptr, nullptr, + nullptr) == SQLITE_OK); } } + } - ASSERT_TRUE( - sqlite3_exec( - dbAux, - "INSERT INTO geodetic_crs VALUES('OTHER','OTHER_4326','WGS " - "84',NULL,'geographic 2D','EPSG','6422','EPSG','6326'," - "NULL,0);", - nullptr, nullptr, nullptr) == SQLITE_OK); - ASSERT_TRUE(sqlite3_exec(dbAux, "COMMIT", nullptr, nullptr, nullptr) == - SQLITE_OK); + ASSERT_TRUE(sqlite3_exec( + dbAux, + "INSERT INTO geodetic_crs VALUES('OTHER','OTHER_4326','WGS " + "84',NULL,'geographic 2D','EPSG','6422','EPSG','6326'," + "NULL,0);", + nullptr, nullptr, nullptr) == SQLITE_OK); + ASSERT_TRUE(sqlite3_exec(dbAux, "COMMIT", nullptr, nullptr, nullptr) == + SQLITE_OK); + { + auto ctxt = DatabaseContext::create(std::string(), {auxDbName}); + // Look for object located in main DB { - auto ctxt = DatabaseContext::create(std::string(), {auxDbName}); - // Look for object located in main DB - { - auto factory = AuthorityFactory::create(ctxt, "EPSG"); - auto crs = factory->createGeodeticCRS("4326"); - auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); - EXPECT_TRUE(gcrs != nullptr); - } - // Look for object located in auxiliary DB - { - auto factory = AuthorityFactory::create(ctxt, "OTHER"); - auto crs = factory->createGeodeticCRS("OTHER_4326"); - auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); - EXPECT_TRUE(gcrs != nullptr); - } + auto factory = AuthorityFactory::create(ctxt, "EPSG"); + auto crs = factory->createGeodeticCRS("4326"); + auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); + EXPECT_TRUE(gcrs != nullptr); } - + // Look for object located in auxiliary DB { - auto ctxt = - DatabaseContext::create(std::string(), {auxDbName, ":memory:"}); - // Look for object located in main DB - { - auto factory = AuthorityFactory::create(ctxt, "EPSG"); - auto crs = factory->createGeodeticCRS("4326"); - auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); - EXPECT_TRUE(gcrs != nullptr); - } - // Look for object located in auxiliary DB - { - auto factory = AuthorityFactory::create(ctxt, "OTHER"); - auto crs = factory->createGeodeticCRS("OTHER_4326"); - auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); - EXPECT_TRUE(gcrs != nullptr); - } + auto factory = AuthorityFactory::create(ctxt, "OTHER"); + auto crs = factory->createGeodeticCRS("OTHER_4326"); + auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); + EXPECT_TRUE(gcrs != nullptr); } + } + { + auto ctxt = + DatabaseContext::create(std::string(), {auxDbName, ":memory:"}); + // Look for object located in main DB { - auto ctxt = DatabaseContext::create(std::string(), {":memory:"}); - // Look for object located in main DB - { - auto factory = AuthorityFactory::create(ctxt, "EPSG"); - auto crs = factory->createGeodeticCRS("4326"); - auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); - EXPECT_TRUE(gcrs != nullptr); - } - // Look for object located in auxiliary DB - { - auto factory = AuthorityFactory::create(ctxt, "OTHER"); - EXPECT_THROW(factory->createGeodeticCRS("OTHER_4326"), - FactoryException); - } + auto factory = AuthorityFactory::create(ctxt, "EPSG"); + auto crs = factory->createGeodeticCRS("4326"); + auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); + EXPECT_TRUE(gcrs != nullptr); + } + // Look for object located in auxiliary DB + { + auto factory = AuthorityFactory::create(ctxt, "OTHER"); + auto crs = factory->createGeodeticCRS("OTHER_4326"); + auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); + EXPECT_TRUE(gcrs != nullptr); } + } - sqlite3_close(dbAux); + { + auto ctxt = DatabaseContext::create(std::string(), {":memory:"}); + // Look for object located in main DB + { + auto factory = AuthorityFactory::create(ctxt, "EPSG"); + auto crs = factory->createGeodeticCRS("4326"); + auto gcrs = nn_dynamic_pointer_cast<GeographicCRS>(crs); + EXPECT_TRUE(gcrs != nullptr); + } + // Look for object located in auxiliary DB + { + auto factory = AuthorityFactory::create(ctxt, "OTHER"); + EXPECT_THROW(factory->createGeodeticCRS("OTHER_4326"), + FactoryException); + } } -#ifndef SQLITE_OPEN_URI - MyUnlink(auxDbName); -#endif + + sqlite3_close(dbAux); } // --------------------------------------------------------------------------- |
