]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5533a] Rebased
authorFrancis Dupont <fdupont@isc.org>
Fri, 23 Feb 2018 22:48:32 +0000 (23:48 +0100)
committerFrancis Dupont <fdupont@isc.org>
Fri, 23 Feb 2018 22:48:32 +0000 (23:48 +0100)
12 files changed:
1  2 
doc/guide/dhcp4-srv.xml
doc/guide/dhcp6-srv.xml
doc/guide/hooks.xml
src/lib/dhcpsrv/Makefile.am
src/lib/dhcpsrv/cql_host_data_source.cc
src/lib/dhcpsrv/tests/Makefile.am
src/lib/dhcpsrv/tests/cql_host_data_source_unittest.cc
src/lib/dhcpsrv/tests/mysql_host_data_source_unittest.cc
src/lib/dhcpsrv/tests/pgsql_host_data_source_unittest.cc
src/lib/dhcpsrv/testutils/Makefile.am
src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.cc
src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.h

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index a3462a5421d1120bed166d0aea939b7b8d6f37cd,4707760656b8400aa2de7d24ae23dd0827df31c6..3efa01163c5b7358bcb42cec5e3eca10ed72d62f
  #include <dhcpsrv/cql_host_data_source.h>
  #include <dhcpsrv/cql_lease_mgr.h>
  #include <dhcpsrv/host.h>
+ #include <dhcpsrv/host_mgr.h>
  #include <dhcpsrv/host_data_source_factory.h>
- #include <dhcpsrv/tests/generic_host_data_source_unittest.h>
+ #include <dhcpsrv/testutils/generic_host_data_source_unittest.h>
  #include <dhcpsrv/tests/test_utils.h>
  #include <dhcpsrv/testutils/cql_schema.h>
 +#include <dhcpsrv/testutils/host_data_source_utils.h>
  #include <exceptions/exceptions.h>
  
  #include <gtest/gtest.h>
index e40d965c07cf2f7012aab9ed8c34ed6130938731,c073dda0886bd56345889d0b0831c34213d2cd40..b7b46affc9e92ed5a0a3f2c3bdbb20a788f084a7
  #include <dhcpsrv/host.h>
  #include <dhcpsrv/mysql_connection.h>
  #include <dhcpsrv/mysql_host_data_source.h>
- #include <dhcpsrv/tests/generic_host_data_source_unittest.h>
+ #include <dhcpsrv/testutils/generic_host_data_source_unittest.h>
  #include <dhcpsrv/testutils/mysql_schema.h>
 +#include <dhcpsrv/testutils/host_data_source_utils.h>
+ #include <dhcpsrv/host_mgr.h>
  #include <dhcpsrv/host_data_source_factory.h>
  
  #include <gtest/gtest.h>
index f575f5f50cc6ab0bbd9096068c6f4d19831fe426,42fbf3dc7d545ab8bf3c822fce63fe5fcf452684..559065589b6504112b192fd93ba61f430bf1edee
  #include <dhcpsrv/host.h>
  #include <dhcpsrv/pgsql_connection.h>
  #include <dhcpsrv/pgsql_host_data_source.h>
- #include <dhcpsrv/tests/generic_host_data_source_unittest.h>
+ #include <dhcpsrv/testutils/generic_host_data_source_unittest.h>
  #include <dhcpsrv/testutils/pgsql_schema.h>
 +#include <dhcpsrv/testutils/host_data_source_utils.h>
+ #include <dhcpsrv/host_mgr.h>
  #include <dhcpsrv/host_data_source_factory.h>
  
  #include <gtest/gtest.h>
index 1ad1df791f9893973de49be006b9cab7c17037d0,10a7e3d8909876a27658df009d61e6fc5160b575..f825e6a2f380205cfa38701f8cc176dabc5517e0
@@@ -14,9 -14,10 +14,12 @@@ noinst_LTLIBRARIES = libdhcpsrvtest.l
  
  libdhcpsrvtest_la_SOURCES  = config_result_check.cc config_result_check.h
  libdhcpsrvtest_la_SOURCES += dhcp4o6_test_ipc.cc dhcp4o6_test_ipc.h
 +libdhcpsrvtest_la_SOURCES += host_data_source_utils.cc host_data_source_utils.h
+ libdhcpsrvtest_la_SOURCES += memory_host_data_source.cc memory_host_data_source.h
+ libdhcpsrvtest_la_SOURCES += generic_host_data_source_unittest.cc generic_host_data_source_unittest.h
  libdhcpsrvtest_la_SOURCES += schema.cc schema.h
 +libdhcpsrvtest_la_SOURCES += lease_file_io.cc lease_file_io.h
  
  if HAVE_MYSQL
  libdhcpsrvtest_la_SOURCES += mysql_schema.cc mysql_schema.h
index 646e0ee4629ed7079e7ee3479d22b752e453c34c,e81f6fd75f2fc507e9d74f3ed3bc78a5c0a5fe48..7508981324ad070c4b38bffbd7f27a8160808666
  #include <dhcp/option_string.h>
  #include <dhcp/option_vendor.h>
  #include <dhcpsrv/database_connection.h>
++#include <dhcpsrv/db_exceptions.h>
+ #include <dhcpsrv/host_mgr.h>
  #include <dhcpsrv/host_data_source_factory.h>
- #include <dhcpsrv/tests/generic_host_data_source_unittest.h>
- #include <dhcpsrv/tests/test_utils.h>
+ #include <dhcpsrv/testutils/generic_host_data_source_unittest.h>
  #include <dhcpsrv/testutils/schema.h>
 -#include <dhcpsrv/lease_mgr.h>
++#include <dhcpsrv/testutils/host_data_source_utils.h>
++#include <util/buffer.h>
  
  #include <boost/foreach.hpp>
- #include <dhcpsrv/testutils/host_data_source_utils.h>
  #include <gtest/gtest.h>
--#include <util/buffer.h>
  
  #include <chrono>
  #include <cstring>
@@@ -193,9 -570,11 +194,11 @@@ GenericHostDataSourceTest::testReadOnly
  
      // The database is initially opened in "read-write" mode. We can
      // insert some data to the database.
 -    HostPtr host = initializeHost6("2001:db8::1", Host::IDENT_DUID, false);
 +    HostPtr host = HostDataSourceUtils::initializeHost6("2001:db8::1", Host::IDENT_DUID, false);
      ASSERT_TRUE(host);
-     ASSERT_NO_THROW(hdsptr_->add(host));
+     bool added = false;
+     ASSERT_NO_THROW(added = hdsptr_->add(host));
+     EXPECT_TRUE(added);
  
      // Subnet id will be used in queries to the database.
      SubnetID subnet_id = host->getIPv6SubnetID();
@@@ -264,16 -645,21 +269,21 @@@ GenericHostDataSourceTest::testGetByIPv
      ASSERT_TRUE(hdsptr_);
  
      // Let's create a couple of hosts...
 -    HostPtr host1 = initializeHost4("192.0.2.1", id);
 -    HostPtr host2 = initializeHost4("192.0.2.2", id);
 -    HostPtr host3 = initializeHost4("192.0.2.3", id);
 -    HostPtr host4 = initializeHost4("192.0.2.4", id);
 +    HostPtr host1 = HostDataSourceUtils::initializeHost4("192.0.2.1", id);
 +    HostPtr host2 = HostDataSourceUtils::initializeHost4("192.0.2.2", id);
 +    HostPtr host3 = HostDataSourceUtils::initializeHost4("192.0.2.3", id);
 +    HostPtr host4 = HostDataSourceUtils::initializeHost4("192.0.2.4", id);
  
      // ... and add them to the data source.
-     ASSERT_NO_THROW(hdsptr_->add(host1));
-     ASSERT_NO_THROW(hdsptr_->add(host2));
-     ASSERT_NO_THROW(hdsptr_->add(host3));
-     ASSERT_NO_THROW(hdsptr_->add(host4));
+     bool added = false;
+     ASSERT_NO_THROW(added = hdsptr_->add(host1));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host2));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host3));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host4));
+     EXPECT_TRUE(added);
  
      SubnetID subnet1 = host1->getIPv4SubnetID();
      SubnetID subnet2 = host2->getIPv4SubnetID();
@@@ -573,11 -973,14 +597,14 @@@ GenericHostDataSourceTest::testGet6ByHW
      ASSERT_TRUE(host1->getHWAddress());
      ASSERT_TRUE(host2->getHWAddress());
  
 -    compareHwaddrs(host1, host2, false);
 +    HostDataSourceUtils::compareHwaddrs(host1, host2, false);
  
      // Try to add both of them to the host data source.
-     ASSERT_NO_THROW(hdsptr_->add(host1));
-     ASSERT_NO_THROW(hdsptr_->add(host2));
+     bool added = false;
+     ASSERT_NO_THROW(added = hdsptr_->add(host1));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host2));
+     EXPECT_TRUE(added);
  
      SubnetID subnet1 = host1->getIPv6SubnetID();
      SubnetID subnet2 = host2->getIPv6SubnetID();
@@@ -610,11 -1013,14 +637,14 @@@ GenericHostDataSourceTest::testGet6ByCl
      ASSERT_TRUE(host1->getDuid());
      ASSERT_TRUE(host2->getDuid());
  
 -    compareDuids(host1, host2, false);
 +    HostDataSourceUtils::compareDuids(host1, host2, false);
  
      // Try to add both of them to the host data source.
-     ASSERT_NO_THROW(hdsptr_->add(host1));
-     ASSERT_NO_THROW(hdsptr_->add(host2));
+     bool added = false;
+     ASSERT_NO_THROW(added = hdsptr_->add(host1));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host2));
+     EXPECT_TRUE(added);
  
      SubnetID subnet1 = host1->getIPv6SubnetID();
      SubnetID subnet2 = host2->getIPv6SubnetID();
@@@ -692,16 -1100,21 +724,21 @@@ GenericHostDataSourceTest::testGetByIPv
      ASSERT_TRUE(hdsptr_);
  
      // Let's create a couple of hosts...
 -    HostPtr host1 = initializeHost6("2001:db8::1", id, prefix);
 -    HostPtr host2 = initializeHost6("2001:db8::2", id, prefix);
 -    HostPtr host3 = initializeHost6("2001:db8::3", id, prefix);
 -    HostPtr host4 = initializeHost6("2001:db8::4", id, prefix);
 +    HostPtr host1 = HostDataSourceUtils::initializeHost6("2001:db8::1", id, prefix);
 +    HostPtr host2 = HostDataSourceUtils::initializeHost6("2001:db8::2", id, prefix);
 +    HostPtr host3 = HostDataSourceUtils::initializeHost6("2001:db8::3", id, prefix);
 +    HostPtr host4 = HostDataSourceUtils::initializeHost6("2001:db8::4", id, prefix);
  
      // ... and add them to the data source.
-     ASSERT_NO_THROW(hdsptr_->add(host1));
-     ASSERT_NO_THROW(hdsptr_->add(host2));
-     ASSERT_NO_THROW(hdsptr_->add(host3));
-     ASSERT_NO_THROW(hdsptr_->add(host4));
+     bool added = false;
+     ASSERT_NO_THROW(added = hdsptr_->add(host1));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host2));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host3));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host4));
+     EXPECT_TRUE(added);
  
      // Are we talking about addresses or prefixes?
      uint8_t len = prefix ? 64 : 128;
@@@ -735,16 -1148,21 +772,21 @@@ GenericHostDataSourceTest::testGetBySub
      ASSERT_TRUE(hdsptr_);
  
      // Let's create a couple of hosts...
 -    HostPtr host1 = initializeHost6("2001:db8:1::", Host::IDENT_DUID, true);
 -    HostPtr host2 = initializeHost6("2001:db8:2::", Host::IDENT_DUID, true);
 -    HostPtr host3 = initializeHost6("2001:db8:3::", Host::IDENT_DUID, true);
 -    HostPtr host4 = initializeHost6("2001:db8:4::", Host::IDENT_DUID, true);
 +    HostPtr host1 = HostDataSourceUtils::initializeHost6("2001:db8:1::", Host::IDENT_DUID, true);
 +    HostPtr host2 = HostDataSourceUtils::initializeHost6("2001:db8:2::", Host::IDENT_DUID, true);
 +    HostPtr host3 = HostDataSourceUtils::initializeHost6("2001:db8:3::", Host::IDENT_DUID, true);
 +    HostPtr host4 = HostDataSourceUtils::initializeHost6("2001:db8:4::", Host::IDENT_DUID, true);
  
      // ... and add them to the data source.
-     ASSERT_NO_THROW(hdsptr_->add(host1));
-     ASSERT_NO_THROW(hdsptr_->add(host2));
-     ASSERT_NO_THROW(hdsptr_->add(host3));
-     ASSERT_NO_THROW(hdsptr_->add(host4));
+     bool added = false;
+     ASSERT_NO_THROW(added = hdsptr_->add(host1));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host2));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host3));
+     EXPECT_TRUE(added);
+     ASSERT_NO_THROW(added = hdsptr_->add(host4));
+     EXPECT_TRUE(added);
  
      // And then try to retrieve them back.
      ConstHostPtr from_hds1 = hdsptr_->get6(host1->getIPv6SubnetID(), IOAddress("2001:db8:1::"));
@@@ -771,10 -1189,12 +813,12 @@@ GenericHostDataSourceTest::testAddDupli
      ASSERT_TRUE(hdsptr_);
  
      // Create a host reservations.
 -    HostPtr host = initializeHost6("2001:db8::1", Host::IDENT_DUID, true);
 +    HostPtr host = HostDataSourceUtils::initializeHost6("2001:db8::1", Host::IDENT_DUID, true);
  
      // Add this reservation once.
-     ASSERT_NO_THROW(hdsptr_->add(host));
+     bool added = false;
+     ASSERT_NO_THROW(added = hdsptr_->add(host));
+     EXPECT_TRUE(added);
  
      // Then try to add it again, it should throw an exception.
      ASSERT_THROW(hdsptr_->add(host), DuplicateEntry);
@@@ -786,10 -1206,12 +830,12 @@@ GenericHostDataSourceTest::testAddDupli
      ASSERT_TRUE(hdsptr_);
  
      // Create a host reservations.
 -    HostPtr host = initializeHost6("2001:db8::1", Host::IDENT_HWADDR, true);
 +    HostPtr host = HostDataSourceUtils::initializeHost6("2001:db8::1", Host::IDENT_HWADDR, true);
  
      // Add this reservation once.
-     ASSERT_NO_THROW(hdsptr_->add(host));
+     bool added = false;
+     ASSERT_NO_THROW(added = hdsptr_->add(host));
+     EXPECT_TRUE(added);
  
      // Then try to add it again, it should throw an exception.
      ASSERT_THROW(hdsptr_->add(host), DuplicateEntry);
@@@ -801,10 -1223,12 +847,12 @@@ GenericHostDataSourceTest::testAddDupli
      ASSERT_TRUE(hdsptr_);
  
      // Create a host reservations.
 -    HostPtr host = initializeHost4("192.0.2.1", Host::IDENT_DUID);
 +    HostPtr host = HostDataSourceUtils::initializeHost4("192.0.2.1", Host::IDENT_DUID);
  
      // Add this reservation once.
-     ASSERT_NO_THROW(hdsptr_->add(host));
+     bool added = false;
+     ASSERT_NO_THROW(added = hdsptr_->add(host));
+     EXPECT_TRUE(added);
  
      // Then try to add it again, it should throw an exception.
      ASSERT_THROW(hdsptr_->add(host), DuplicateEntry);
@@@ -1484,10 -1869,11 +1563,11 @@@ GenericHostDataSourceTest::testMultiple
      // Create another host with zero IPv4 address. Adding this host to the
      // database should be successful because zero addresses are not counted
      // in the unique index.
 -    HostPtr host2 = initializeHost4("0.0.0.0", Host::IDENT_HWADDR);
 +    HostPtr host2 = HostDataSourceUtils::initializeHost4("0.0.0.0", Host::IDENT_HWADDR);
      host2->setIPv4SubnetID(1);
      host2->setIPv6SubnetID(0);
-     ASSERT_NO_THROW(hdsptr_->add(host2));
+     ASSERT_NO_THROW(added = hdsptr_->add(host2));
+     EXPECT_TRUE(added);
  }
  
  void