From: Tomek Mrugalski Date: Tue, 21 Oct 2014 12:44:47 +0000 (+0200) Subject: [3555] Version number check in Memfile. X-Git-Tag: trac3629a_base~5^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bfeaf28900a77ca1f7707605e2bbef6c7a27b271;p=thirdparty%2Fkea.git [3555] Version number check in Memfile. --- diff --git a/src/lib/dhcpsrv/memfile_lease_mgr.h b/src/lib/dhcpsrv/memfile_lease_mgr.h index d6f93404ca..0d6a0654f4 100644 --- a/src/lib/dhcpsrv/memfile_lease_mgr.h +++ b/src/lib/dhcpsrv/memfile_lease_mgr.h @@ -71,6 +71,23 @@ namespace dhcp { class Memfile_LeaseMgr : public LeaseMgr { public: + /// @defgroup versions Specified memfile backend version. + /// + /// @brief Defines major version of the memfile backend. + /// + /// Version history: + /// 1.0 - initial version (released in Kea 0.9) + /// 2.0 - hwaddr column added (to be released in Kea 0.9.1) + /// + /// @{ + static const int MAJOR_VERSION = 2; + + /// Defines minor version of the memfile backend. + static const int MINOR_VERSION = 0; + + /// @} + + /// @brief Specifies universe (V4, V6) /// /// This enumeration is used by various functions in Memfile Lease Manager, @@ -274,12 +291,8 @@ public: /// /// @return Version number as a pair of unsigned integers. "first" is the /// major version number, "second" the minor number. - /// - /// Numbering history: - /// 1.0 - initial version (released as 0.9) - /// 2.0 - hwaddr (hardware address/MAC) column added virtual std::pair getVersion() const { - return (std::make_pair(2, 0)); + return (std::make_pair(MAJOR_VERSION, MINOR_VERSION)); } /// @brief Commit Transactions diff --git a/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc b/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc index f752530e58..a982366d90 100644 --- a/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc +++ b/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc @@ -1602,6 +1602,12 @@ GenericLeaseMgrTest::testNullDuid() { ASSERT_THROW(lmptr_->addLease(leases[1]), DbOperationError); } +void +GenericLeaseMgrTest::testVersion(int major, int minor) { + EXPECT_EQ(major, lmptr_->getVersion().first); + EXPECT_EQ(minor, lmptr_->getVersion().second); +} + }; // namespace test }; // namespace dhcp diff --git a/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h b/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h index 0afb2900bc..cb6bcfa6d4 100644 --- a/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h +++ b/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h @@ -257,6 +257,11 @@ public: /// @brief Verifies that a null DUID is not allowed. void testNullDuid(); + /// @brief Verifies that the backend reports expected version numbers. + /// @param major Expected major version to be reported. + /// @param minor Expected minor version to be reported. + void testVersion(int major, int minor); + /// @brief String forms of IPv4 addresses std::vector straddress4_; diff --git a/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc b/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc index 78cbcf5801..b04e806432 100644 --- a/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc +++ b/src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc @@ -465,4 +465,20 @@ TEST_F(MemfileLeaseMgrTest, testUpgrade0_9_0_to_0_9_1) { EXPECT_FALSE(stored3->hwaddr_); } +// Check that memfile reports version correctly. +TEST_F(MemfileLeaseMgrTest, versionCheck) { + + // Check that V4 backend reports versions correctly. + startBackend(V4); + testVersion(Memfile_LeaseMgr::MAJOR_VERSION, + Memfile_LeaseMgr::MINOR_VERSION); + LeaseMgrFactory::destroy(); + + // Check that V6 backends reports them ok, too. + startBackend(V6); + testVersion(Memfile_LeaseMgr::MAJOR_VERSION, + Memfile_LeaseMgr::MINOR_VERSION); + LeaseMgrFactory::destroy(); +} + }; // end of anonymous namespace