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,
///
/// @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<uint32_t, uint32_t> getVersion() const {
- return (std::make_pair(2, 0));
+ return (std::make_pair(MAJOR_VERSION, MINOR_VERSION));
}
/// @brief Commit Transactions
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
/// @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<std::string> straddress4_;
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