From: Tomek Mrugalski Date: Thu, 6 Mar 2014 10:35:35 +0000 (+0000) Subject: [3359] Invalid hostname tests moved from MySQL to shared framework. X-Git-Tag: kea-eng-20140313~17^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8e7af49f4f4b72187ec0861c95bd80e8900fcedf;p=thirdparty%2Fkea.git [3359] Invalid hostname tests moved from MySQL to shared framework. --- diff --git a/src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc b/src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc index dfb8266987..30403ae054 100644 --- a/src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc +++ b/src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc @@ -345,24 +345,7 @@ TEST_F(MySqlLeaseMgrTest, lease4NullClientId) { /// Checks that the it is not possible to create a lease when the hostname /// length exceeds 255 characters. TEST_F(MySqlLeaseMgrTest, lease4InvalidHostname) { - // Get the leases to be used for the test. - vector leases = createLeases4(); - - // Create a dummy hostname, consisting of 255 characters. - leases[1]->hostname_.assign(255, 'a'); - ASSERT_TRUE(lmptr_->addLease(leases[1])); - - // The new lease must be in the database. - Lease4Ptr l_returned = lmptr_->getLease4(ioaddress4_[1]); - detailCompareLease(leases[1], l_returned); - - // Let's delete the lease, so as we can try to add it again with - // invalid hostname. - EXPECT_TRUE(lmptr_->deleteLease(ioaddress4_[1])); - - // Create a hostname with 256 characters. It should not be accepted. - leases[1]->hostname_.assign(256, 'a'); - EXPECT_THROW(lmptr_->addLease(leases[1]), DbOperationError); + testLease4InvalidHostname(); } /// @brief Basic Lease6 Checks @@ -378,24 +361,7 @@ TEST_F(MySqlLeaseMgrTest, basicLease6) { /// Checks that the it is not possible to create a lease when the hostname /// length exceeds 255 characters. TEST_F(MySqlLeaseMgrTest, lease6InvalidHostname) { - // Get the leases to be used for the test. - vector leases = createLeases6(); - - // Create a dummy hostname, consisting of 255 characters. - leases[1]->hostname_.assign(255, 'a'); - ASSERT_TRUE(lmptr_->addLease(leases[1])); - - // The new lease must be in the database. - Lease6Ptr l_returned = lmptr_->getLease6(leasetype6_[1], ioaddress6_[1]); - detailCompareLease(leases[1], l_returned); - - // Let's delete the lease, so as we can try to add it again with - // invalid hostname. - EXPECT_TRUE(lmptr_->deleteLease(ioaddress6_[1])); - - // Create a hostname with 256 characters. It should not be accepted. - leases[1]->hostname_.assign(256, 'a'); - EXPECT_THROW(lmptr_->addLease(leases[1]), DbOperationError); + testLease6InvalidHostname(); } /// @brief Check GetLease4 methods - access by Hardware Address diff --git a/src/lib/dhcpsrv/tests/test_utils.cc b/src/lib/dhcpsrv/tests/test_utils.cc index 52374d2aba..6779edfd42 100644 --- a/src/lib/dhcpsrv/tests/test_utils.cc +++ b/src/lib/dhcpsrv/tests/test_utils.cc @@ -860,6 +860,50 @@ GenericLeaseMgrTest::testBasicLease6() { detailCompareLease(leases[2], l_returned); } +void +GenericLeaseMgrTest::testLease4InvalidHostname() { + // Get the leases to be used for the test. + vector leases = createLeases4(); + + // Create a dummy hostname, consisting of 255 characters. + leases[1]->hostname_.assign(255, 'a'); + ASSERT_TRUE(lmptr_->addLease(leases[1])); + + // The new lease must be in the database. + Lease4Ptr l_returned = lmptr_->getLease4(ioaddress4_[1]); + detailCompareLease(leases[1], l_returned); + + // Let's delete the lease, so as we can try to add it again with + // invalid hostname. + EXPECT_TRUE(lmptr_->deleteLease(ioaddress4_[1])); + + // Create a hostname with 256 characters. It should not be accepted. + leases[1]->hostname_.assign(256, 'a'); + EXPECT_THROW(lmptr_->addLease(leases[1]), DbOperationError); +} + +/// @brief Verify that too long hostname for Lease6 is not accepted. +void +GenericLeaseMgrTest::testLease6InvalidHostname() { + // Get the leases to be used for the test. + vector leases = createLeases6(); + + // Create a dummy hostname, consisting of 255 characters. + leases[1]->hostname_.assign(255, 'a'); + ASSERT_TRUE(lmptr_->addLease(leases[1])); + + // The new lease must be in the database. + Lease6Ptr l_returned = lmptr_->getLease6(leasetype6_[1], ioaddress6_[1]); + detailCompareLease(leases[1], l_returned); + + // Let's delete the lease, so as we can try to add it again with + // invalid hostname. + EXPECT_TRUE(lmptr_->deleteLease(ioaddress6_[1])); + + // Create a hostname with 256 characters. It should not be accepted. + leases[1]->hostname_.assign(256, 'a'); + EXPECT_THROW(lmptr_->addLease(leases[1]), DbOperationError); +} }; }; diff --git a/src/lib/dhcpsrv/tests/test_utils.h b/src/lib/dhcpsrv/tests/test_utils.h index 935bbc8c07..b003f7589c 100644 --- a/src/lib/dhcpsrv/tests/test_utils.h +++ b/src/lib/dhcpsrv/tests/test_utils.h @@ -158,6 +158,18 @@ public: /// @param check_t1_t2 controls whether T1,T2 timers should be checked void testAddGetDelete6(bool check_t1_t2); + /// @brief Verify that too long hostname for Lease4 is not accepted. + /// + /// Checks that the it is not possible to create a lease when the hostname + /// length exceeds 255 characters. + void testLease4InvalidHostname(); + + /// @brief Verify that too long hostname for Lease6 is not accepted. + /// + /// Checks that the it is not possible to create a lease when the hostname + /// length exceeds 255 characters. + void testLease6InvalidHostname(); + // Member variables std::vector straddress4_; ///< String forms of IPv4 addresses std::vector ioaddress4_; ///< IOAddress forms of IPv4 addresses