Rather than use hard-coded lists or query logic for dropping the
database all MySQL and Posgresql tests use new drop scripts
added to src/bind/admin/scripts.
src/bin/admin/scripts/mysql/dhcpdb_drop.mysql
- New SQL script to drop a MySQL database
src/bin/admin/scripts/pgsql/dhcpdb_drop.pgsql
- New SQL script to drop a Postgresql database
src/bin/admin/tests/mysql_tests.sh.in
- mysql_wipe() - modified to use new drop script
src/bin/admin/tests/pgsql_tests.sh.in
- pgsql_wipe() modified to use new drop script
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
- TEST(MySqlOpenTest, OpenDatabase) - added show_err=true
to destroyMySQLSchema() calls
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc
- TEST(PgSqlOpenTest, OpenDatabase) - added show_err=true
to destroyMySQLSchema() calls
src/lib/dhcpsrv/testutils/mysql_schema.cc
- destroyMySQLSchema(bool show_err) - modified to use the new
drop script and accept show_err parameter
src/lib/dhcpsrv/testutils/pgsql_schema.cc
- destroyPgSQLSchema(bool show_err) - modified to use the new
drop script and accept show_err parameter
src/lib/dhcpsrv/testutils/schema.h
src/lib/dhcpsrv/testutils/schema.cc
New files that contain constants and functions common to RDBMS
testing
src/lib/dhcpsrv/testutils/pgsql_schema.h
src/lib/dhcpsrv/testutils/pgsql_schema.cc
New files that contain constants and functions needed for
Posgresql testing
src/lib/dhcpsrv/testutils/mysql_schema.cc
src/lib/dhcpsrv/testutils/mysql_schema.h
Removed common constants and functions
Added MYSQL_VALID_TYPE
runMySQLScript() - new function to submit a script to MySQL
src/lib/dhcpsrv/pgsql_lease_mgr.cc
PgSqlLease6Exchange - replaced uint32_t iaid member with Uiaid union
instance. This permits the value to be safely stored in the database
as an INT (signed 4-byte value)
getColumnValue()- added int32_t variant of this method
src/lib/dhcpsrv/tests/Makefile.am
Removed schema_pgsql_copy.h
src/lib/dhcpsrv/tests/mysql_host_data_source_unittest.cc
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
Altered tests to use MYSQL_VALID_TYPE
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc
Moved constants and functions testutils/pgsl_schema.h & cc
src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
TEST(MySqlOpenTest, OpenDatabase) - pass in show_err=true for call
to createMySQLSchema()
src/lib/dhcpsrv/testutils/Makefile.am
- Added definition of TEST_ADMIN_SCRIPTS_DIR
- removed schema_mysql_copy.h
src/lib/dhcpsrv/testutils/mysql_schema.cc
- Removed include of schema_mysql_copy.h
- destroyMySQLSchema() - now contains destroy_statment[] formerly
defined in schema_mysql_copy.h
- createMySQLSchema() - Creates the database through command line
invocation of MySQL cli, mysql, passing it the production database
creation script
Moved string/enum conversion functions inside D2ClientConfig
Changed underscores to hypens in replace-client-name values and changed
all literal values to lower case.
Fixed minor wording issues in admin guide and new log messages.
Added commentary and extra error logging to unit tests
Added test case for invalid value of replace-client-name
Distcheck sporadically fails to clean up test_leases.csv.2
can be left behind by dhcp4 and dhcp6 testing.
src/bin/dhcp4/tests/Makefile.am
src/bin/dhcp6/tests/Makefile.am
- Added test_leases.csv.* to CLEANFILES
src/lib/asiolink/Makefile.am
added asio_wrapper.h to list of sources
src/lib/asiolink/asio_wrapper.h
updated commentary to include GNU/Boost bugs and
added prominent warning comment
src/bin/dhcp6/dhcp6_messages.mes
- Added new log message, DHCP6_DDNS_SUPPLY_FQDN
src/bin/dhcp6/dhcp6_srv.cc
- Dhcpv6Srv::processClientFqdn() - modified to support the name
replacement modes
src/bin/dhcp6/tests/fqdn_unittest.cc
- FqdnDhcpv6SrvTest::testReplaceClientNameMode() new method which tests
a server's handling of a single client packet for a given
replace-client-name mode.
- TEST_F(FqdnDhcpv6SrvTest, replaceClientNameModeTest) - new test which
exercises the permutations of client packets and replace-client-name
modes.
src/bin/dhcp4/dhcp4_messages.mes
- Added new log message DHCP4_SUPPLY_HOSTNAME
src/bin/dhcp4/dhcp4_srv.cc
- Dhcpv4Srv::processClientName() - pushed lack of host option in the
client request down into processHostoption()
- Dhcpv4Srv::processHostnameOption() - modified to support the new name
replacement modes
src/bin/dhcp4/tests/fqdn_unittest.cc
- NameDhcpv4SrvTest:: testReplaceClientNameMode() - new method which
tests a server's handling of a single client packet for a given
replace-client-name mode.
- TEST_F(NameDhcpv4SrvTest, replaceClientNameModeTest) - new test which
exercises the permutations of client packets and replace-client-name
modes.
The D2 client configuration parameter, replace-client-name, was
changed from a boolean, to an enumerated list of modes:
"NEVER" - do not alter or supply the client name
"ALWAYS" - always replace the client name, or supply it if
not sent by the client
"WHEN_PRESENT" - replace the client name sent by the client,
do not supply one otherwise
"WHEN_NOT_PRESENT" - supply the client name only if one was
not sent by the client
src/lib/dhcpsrv/d2_client_cfg.cc
src/lib/dhcpsrv/d2_client_cfg.h
Added the D2ClientConfig::ReplaceClientNameMode enumeration.
src/lib/dhcpsrv/parsers/dhcp_parsers.cc
- Alter replace-client-name parsing to parse the mode labels.
- Maps boolean literals true and false to RCM_WHEN_PRESENT and
RCM_NEVER respectively
src/bin/dhcp4/dhcp6_srv.cc
src/bin/dhcp4/dhcp4_srv.cc
src/lib/dhcpsrv/d2_client_mgr.h
- Adapted to use the enumeration
src/bin/dhcp4/tests/config_parser_unittest.cc
src/bin/dhcp4/tests/fqdn_unittest.cc
src/bin/dhcp6/tests/config_parser_unittest.cc
src/bin/dhcp6/tests/fqdn_unittest.cc
src/lib/dhcpsrv/tests/cfgmgr_unittest.cc
src/lib/dhcpsrv/tests/d2_client_unittest.cc
src/lib/dhcpsrv/tests/d2_udp_unittest.cc
src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc
- Alter existing tests to use the enumeration. Note false was replaced
with RCM_NEVER and true with RCM_WHEN_PRESENT