]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[4489] Added unit test for read only mode in PgSQL backend.
authorMarcin Siodelski <marcin@isc.org>
Tue, 12 Jul 2016 09:04:06 +0000 (11:04 +0200)
committerMarcin Siodelski <marcin@isc.org>
Thu, 28 Jul 2016 11:46:30 +0000 (13:46 +0200)
src/lib/dhcpsrv/mysql_host_data_source.cc
src/lib/dhcpsrv/tests/pgsql_host_data_source_unittest.cc

index 70a9aa7a43187ae7adf5f868a9f335276a5c7f87..a45ef83567590c950ce81cfee3eaf2d56460ab28 100644 (file)
@@ -1787,8 +1787,6 @@ public:
 
     /// @brief Indicates if the database is opened in read only mode.
     bool is_readonly_;
-namespace {
-
 };
 
 
@@ -1948,8 +1946,6 @@ TaggedStatementArray tagged_statements = { {
          " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 3)"}}
 };
 
-}; // end anonymouse namespace
-
 MySqlHostDataSourceImpl::
 MySqlHostDataSourceImpl(const MySqlConnection::ParameterMap& parameters)
     : host_exchange_(new MySqlHostWithOptionsExchange(MySqlHostWithOptionsExchange::DHCP4_ONLY)),
index b58b60ee7ad71024dd7de64d2b2901ee18cda8b4..2c4b13c0055ec864d70b4188847a12f608452dbb 100644 (file)
@@ -64,8 +64,13 @@ public:
     /// close the database.  Then reopen it and delete everything created by
     /// the test.
     virtual ~PgSqlHostDataSourceTest() {
-        hdsptr_->rollback();
+        try {
+            hdsptr_->rollback();
+        } catch (...) {
+            // Rollback may fail if backend is in read only mode. That's ok.
+        }
         HostDataSourceFactory::destroy();
+        hdsptr_.reset();
         destroyPgSQLSchema();
     }
 
@@ -168,6 +173,12 @@ TEST(PgSqlHostDataSource, OpenDatabase) {
     destroyPgSQLSchema();
 }
 
+
+// This test verifies that database backend can operate in Read-Only mode.
+TEST_F(PgSqlHostDataSourceTest, testReadOnlyDatabase) {
+    testReadOnlyDatabase(PGSQL_VALID_TYPE);
+}
+
 // Test verifies if a host reservation can be added and later retrieved by IPv4
 // address. Host uses hw address as identifier.
 TEST_F(PgSqlHostDataSourceTest, basic4HWAddr) {