From: Tomek Mrugalski Date: Thu, 25 Jun 2015 17:49:47 +0000 (+0200) Subject: [3681] Last patch clean-up: X-Git-Tag: trac3874_base~33^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e685cf2e3431b35eae9c494856ca1fd357a8475;p=thirdparty%2Fkea.git [3681] Last patch clean-up: - Unnecessary comments removed; - Copyright years updated - whitespace sanitized (tabs, trailing spaces removed) - unit-tests moved from lease_mgr_factory to data_source - includes cleaned up in data_source.cc --- diff --git a/src/lib/dhcpsrv/data_source.cc b/src/lib/dhcpsrv/data_source.cc index 5365edd1c2..6f62bcb98b 100755 --- a/src/lib/dhcpsrv/data_source.cc +++ b/src/lib/dhcpsrv/data_source.cc @@ -19,10 +19,7 @@ #include #include #include - -#include -#include - +#include using namespace std; diff --git a/src/lib/dhcpsrv/lease_mgr_factory.h b/src/lib/dhcpsrv/lease_mgr_factory.h index 130da582a5..15d9e6e85b 100755 --- a/src/lib/dhcpsrv/lease_mgr_factory.h +++ b/src/lib/dhcpsrv/lease_mgr_factory.h @@ -1,4 +1,4 @@ -// Copyright (C) 2012, 2015 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2012-2013,2015 Internet Systems Consortium, Inc. ("ISC") // // Permission to use, copy, modify, and/or distribute this software for any // purpose with or without fee is hereby granted, provided that the above diff --git a/src/lib/dhcpsrv/tests/data_source_unittest.cc b/src/lib/dhcpsrv/tests/data_source_unittest.cc index 6d084c2a0d..5ef57ab102 100644 --- a/src/lib/dhcpsrv/tests/data_source_unittest.cc +++ b/src/lib/dhcpsrv/tests/data_source_unittest.cc @@ -35,3 +35,135 @@ TEST(DataSourceTest, getParameter) { EXPECT_EQ("value2", datasrc.getParameter("param2")); EXPECT_THROW(datasrc.getParameter("param3"), isc::BadValue); } + +// This test checks that a database access string can be parsed correctly. +TEST(DataSourceTest, parse) { + + DataSource::ParameterMap parameters = DataSource::parse( + "user=me password=forbidden name=kea somethingelse= type=mysql"); + + EXPECT_EQ(5, parameters.size()); + EXPECT_EQ("me", parameters["user"]); + EXPECT_EQ("forbidden", parameters["password"]); + EXPECT_EQ("kea", parameters["name"]); + EXPECT_EQ("mysql", parameters["type"]); + EXPECT_EQ("", parameters["somethingelse"]); +} + +// This test checks that an invalid database access string behaves as expected. +TEST(DataSourceTest, parseInvalid) { + + // No tokens in the string, so we expect no parameters + std::string invalid = ""; + DataSource::ParameterMap parameters = DataSource::parse(invalid); + EXPECT_EQ(0, parameters.size()); + + // With spaces, there are some tokens so we expect invalid parameter + // as there are no equals signs. + invalid = " \t "; + EXPECT_THROW(DataSource::parse(invalid), isc::InvalidParameter); + + invalid = " noequalshere "; + EXPECT_THROW(DataSource::parse(invalid), isc::InvalidParameter); + + // A single "=" is valid string, but is placed here as the result is + // expected to be nothing. + invalid = "="; + parameters = DataSource::parse(invalid); + EXPECT_EQ(1, parameters.size()); + EXPECT_EQ("", parameters[""]); +} + +/// @brief redactConfigString test +/// +/// Checks that the redacted configuration string includes the password only +/// as a set of asterisks. +TEST(DataSourceTest, redactAccessString) { + + DataSource::ParameterMap parameters = + DataSource::parse("user=me password=forbidden name=kea type=mysql"); + EXPECT_EQ(4, parameters.size()); + EXPECT_EQ("me", parameters["user"]); + EXPECT_EQ("forbidden", parameters["password"]); + EXPECT_EQ("kea", parameters["name"]); + EXPECT_EQ("mysql", parameters["type"]); + + // Redact the result. To check, break the redacted string down into its + // components. + std::string redacted = DataSource::redactedAccessString(parameters); + parameters = DataSource::parse(redacted); + + EXPECT_EQ(4, parameters.size()); + EXPECT_EQ("me", parameters["user"]); + EXPECT_EQ("*****", parameters["password"]); + EXPECT_EQ("kea", parameters["name"]); + EXPECT_EQ("mysql", parameters["type"]); +} + +/// @brief redactConfigString test - empty password +/// +/// Checks that the redacted configuration string includes the password only +/// as a set of asterisks, even if the password is null. +TEST(DataSourceTest, redactAccessStringEmptyPassword) { + + DataSource::ParameterMap parameters = + DataSource::parse("user=me name=kea type=mysql password="); + EXPECT_EQ(4, parameters.size()); + EXPECT_EQ("me", parameters["user"]); + EXPECT_EQ("", parameters["password"]); + EXPECT_EQ("kea", parameters["name"]); + EXPECT_EQ("mysql", parameters["type"]); + + // Redact the result. To check, break the redacted string down into its + // components. + std::string redacted = DataSource::redactedAccessString(parameters); + parameters = DataSource::parse(redacted); + + EXPECT_EQ(4, parameters.size()); + EXPECT_EQ("me", parameters["user"]); + EXPECT_EQ("*****", parameters["password"]); + EXPECT_EQ("kea", parameters["name"]); + EXPECT_EQ("mysql", parameters["type"]); + + // ... and again to check that the position of the empty password in the + // string does not matter. + parameters = DataSource::parse("user=me password= name=kea type=mysql"); + EXPECT_EQ(4, parameters.size()); + EXPECT_EQ("me", parameters["user"]); + EXPECT_EQ("", parameters["password"]); + EXPECT_EQ("kea", parameters["name"]); + EXPECT_EQ("mysql", parameters["type"]); + + redacted = DataSource::redactedAccessString(parameters); + parameters = DataSource::parse(redacted); + + EXPECT_EQ(4, parameters.size()); + EXPECT_EQ("me", parameters["user"]); + EXPECT_EQ("*****", parameters["password"]); + EXPECT_EQ("kea", parameters["name"]); + EXPECT_EQ("mysql", parameters["type"]); +} + +/// @brief redactConfigString test - no password +/// +/// Checks that the redacted configuration string excludes the password if there +/// was no password to begin with. +TEST(DataSourceTest, redactAccessStringNoPassword) { + + DataSource::ParameterMap parameters = + DataSource::parse("user=me name=kea type=mysql"); + EXPECT_EQ(3, parameters.size()); + EXPECT_EQ("me", parameters["user"]); + EXPECT_EQ("kea", parameters["name"]); + EXPECT_EQ("mysql", parameters["type"]); + + // Redact the result. To check, break the redacted string down into its + // components. + std::string redacted = DataSource::redactedAccessString(parameters); + parameters = DataSource::parse(redacted); + + EXPECT_EQ(3, parameters.size()); + EXPECT_EQ("me", parameters["user"]); + EXPECT_EQ("kea", parameters["name"]); + EXPECT_EQ("mysql", parameters["type"]); +} diff --git a/src/lib/dhcpsrv/tests/lease_mgr_factory_unittest.cc b/src/lib/dhcpsrv/tests/lease_mgr_factory_unittest.cc index d42cc41116..fc602959c6 100755 --- a/src/lib/dhcpsrv/tests/lease_mgr_factory_unittest.cc +++ b/src/lib/dhcpsrv/tests/lease_mgr_factory_unittest.cc @@ -30,144 +30,10 @@ using namespace isc::dhcp; // Tests of the LeaseMgr create/instance/destroy are implicitly carried out // in the tests for the different concrete lease managers (e.g. MySqlLeaseMgr). -namespace { -// empty class for now, but may be extended once Addr6 becomes bigger -class LeaseMgrFactoryTest : public ::testing::Test { -public: - LeaseMgrFactoryTest() { - } -}; - -// This test checks that a database access string can be parsed correctly. -TEST_F(LeaseMgrFactoryTest, parse) { - - DataSource::ParameterMap parameters = DataSource::parse( - "user=me password=forbidden name=kea somethingelse= type=mysql"); - - EXPECT_EQ(5, parameters.size()); - EXPECT_EQ("me", parameters["user"]); - EXPECT_EQ("forbidden", parameters["password"]); - EXPECT_EQ("kea", parameters["name"]); - EXPECT_EQ("mysql", parameters["type"]); - EXPECT_EQ("", parameters["somethingelse"]); -} - -// This test checks that an invalid database access string behaves as expected. -TEST_F(LeaseMgrFactoryTest, parseInvalid) { - - // No tokens in the string, so we expect no parameters - std::string invalid = ""; - DataSource::ParameterMap parameters = DataSource::parse(invalid); - EXPECT_EQ(0, parameters.size()); - - // With spaces, there are some tokens so we expect invalid parameter - // as there are no equals signs. - invalid = " \t "; - EXPECT_THROW(DataSource::parse(invalid), isc::InvalidParameter); - - invalid = " noequalshere "; - EXPECT_THROW(DataSource::parse(invalid), isc::InvalidParameter); - - // A single "=" is valid string, but is placed here as the result is - // expected to be nothing. - invalid = "="; - parameters = DataSource::parse(invalid); - EXPECT_EQ(1, parameters.size()); - EXPECT_EQ("", parameters[""]); -} - -/// @brief redactConfigString test -/// -/// Checks that the redacted configuration string includes the password only -/// as a set of asterisks. -TEST_F(LeaseMgrFactoryTest, redactAccessString) { - - DataSource::ParameterMap parameters = - DataSource::parse("user=me password=forbidden name=kea type=mysql"); - EXPECT_EQ(4, parameters.size()); - EXPECT_EQ("me", parameters["user"]); - EXPECT_EQ("forbidden", parameters["password"]); - EXPECT_EQ("kea", parameters["name"]); - EXPECT_EQ("mysql", parameters["type"]); - - // Redact the result. To check, break the redacted string down into its - // components. - std::string redacted = DataSource::redactedAccessString(parameters); - parameters = DataSource::parse(redacted); +// Currently there are no unit-tests as the sole testable method (parse) +// was moved to its own class (DataSource). All existing unit-tests were +// moved there. - EXPECT_EQ(4, parameters.size()); - EXPECT_EQ("me", parameters["user"]); - EXPECT_EQ("*****", parameters["password"]); - EXPECT_EQ("kea", parameters["name"]); - EXPECT_EQ("mysql", parameters["type"]); -} - -/// @brief redactConfigString test - empty password -/// -/// Checks that the redacted configuration string includes the password only -/// as a set of asterisks, even if the password is null. -TEST_F(LeaseMgrFactoryTest, redactAccessStringEmptyPassword) { - - DataSource::ParameterMap parameters = - DataSource::parse("user=me name=kea type=mysql password="); - EXPECT_EQ(4, parameters.size()); - EXPECT_EQ("me", parameters["user"]); - EXPECT_EQ("", parameters["password"]); - EXPECT_EQ("kea", parameters["name"]); - EXPECT_EQ("mysql", parameters["type"]); - - // Redact the result. To check, break the redacted string down into its - // components. - std::string redacted = DataSource::redactedAccessString(parameters); - parameters = DataSource::parse(redacted); - - EXPECT_EQ(4, parameters.size()); - EXPECT_EQ("me", parameters["user"]); - EXPECT_EQ("*****", parameters["password"]); - EXPECT_EQ("kea", parameters["name"]); - EXPECT_EQ("mysql", parameters["type"]); - - // ... and again to check that the position of the empty password in the - // string does not matter. - parameters = DataSource::parse("user=me password= name=kea type=mysql"); - EXPECT_EQ(4, parameters.size()); - EXPECT_EQ("me", parameters["user"]); - EXPECT_EQ("", parameters["password"]); - EXPECT_EQ("kea", parameters["name"]); - EXPECT_EQ("mysql", parameters["type"]); - - redacted = DataSource::redactedAccessString(parameters); - parameters = DataSource::parse(redacted); - - EXPECT_EQ(4, parameters.size()); - EXPECT_EQ("me", parameters["user"]); - EXPECT_EQ("*****", parameters["password"]); - EXPECT_EQ("kea", parameters["name"]); - EXPECT_EQ("mysql", parameters["type"]); -} - -/// @brief redactConfigString test - no password -/// -/// Checks that the redacted configuration string excludes the password if there -/// was no password to begin with. -TEST_F(LeaseMgrFactoryTest, redactAccessStringNoPassword) { - - DataSource::ParameterMap parameters = - DataSource::parse("user=me name=kea type=mysql"); - EXPECT_EQ(3, parameters.size()); - EXPECT_EQ("me", parameters["user"]); - EXPECT_EQ("kea", parameters["name"]); - EXPECT_EQ("mysql", parameters["type"]); - - // Redact the result. To check, break the redacted string down into its - // components. - std::string redacted = DataSource::redactedAccessString(parameters); - parameters = DataSource::parse(redacted); - - EXPECT_EQ(3, parameters.size()); - EXPECT_EQ("me", parameters["user"]); - EXPECT_EQ("kea", parameters["name"]); - EXPECT_EQ("mysql", parameters["type"]); -} +namespace { }; // end of anonymous namespace diff --git a/src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc b/src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc index a710191696..0e1cf7282e 100755 --- a/src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc +++ b/src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2012-2015 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2012-2014 Internet Systems Consortium, Inc. ("ISC") // // Permission to use, copy, modify, and/or distribute this software for any // purpose with or without fee is hereby granted, provided that the above diff --git a/src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc b/src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc index 2b45717169..b7bdbb1f28 100755 --- a/src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc +++ b/src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC") +// Copyright (C) 2014-2015 Internet Systems Consortium, Inc. ("ISC") // // Permission to use, copy, modify, and/or distribute this software for any // purpose with or without fee is hereby granted, provided that the above diff --git a/src/lib/dhcpsrv/tests/schema_mysql_copy.h b/src/lib/dhcpsrv/tests/schema_mysql_copy.h index 945b1cb529..3914b99dda 100755 --- a/src/lib/dhcpsrv/tests/schema_mysql_copy.h +++ b/src/lib/dhcpsrv/tests/schema_mysql_copy.h @@ -37,7 +37,6 @@ const char* destroy_statement[] = { "DROP TABLE lease6_types", "DROP TABLE lease_hwaddr_source", "DROP TABLE schema_version", - // Schema 3.0 destroy statements "DROP TABLE hosts", "DROP TABLE dhcp4_options", "DROP TABLE dhcp6_options",