mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-30 21:45:37 +00:00
[2634] Addressed review comments.
This commit is contained in:
@@ -13,13 +13,13 @@
|
||||
// PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
#include <config/ccsession.h>
|
||||
#include <dhcp4/config_parser.h>
|
||||
#include <dhcp4/dhcp4_log.h>
|
||||
#include <dhcp/libdhcp++.h>
|
||||
#include <dhcp/option_definition.h>
|
||||
#include <dhcpsrv/cfgmgr.h>
|
||||
#include <dhcp4/config_parser.h>
|
||||
#include <dhcpsrv/dbaccess_parser.h>
|
||||
//#include <dhcpsrv/dhcp_config_parser.h>
|
||||
#include <dhcpsrv/dhcp_config_parser.h>
|
||||
#include <dhcpsrv/option_space_container.h>
|
||||
#include <util/encode/hex.h>
|
||||
#include <util/strutil.h>
|
||||
@@ -1418,7 +1418,7 @@ private:
|
||||
try {
|
||||
subnet_txt = string_values_.getParam("subnet");
|
||||
} catch (DhcpConfigError) {
|
||||
// rethrow with precise error
|
||||
// Rethrow with precise error.
|
||||
isc_throw(DhcpConfigError,
|
||||
"Mandatory subnet definition in subnet missing");
|
||||
}
|
||||
|
@@ -52,11 +52,8 @@ public:
|
||||
|
||||
// Checks if global parameter of name have expected_value
|
||||
void checkGlobalUint32(string name, uint32_t expected_value) {
|
||||
//const Uint32Storage& uint32_defaults = getUint32Defaults();
|
||||
//const ValueStorage<uint32_t>& uint32_defaults = getUint32Defaults();
|
||||
const Uint32Storage& uint32_defaults = getUint32Defaults();
|
||||
try {
|
||||
//uint32_defaults.addParam("boo", name);
|
||||
uint32_t actual_value = uint32_defaults.getParam(name);
|
||||
EXPECT_EQ(expected_value, actual_value);
|
||||
} catch (DhcpConfigError) {
|
||||
|
@@ -133,23 +133,24 @@ public:
|
||||
/// @brief A template class that stores named elements of a given data type.
|
||||
///
|
||||
/// This template class is provides data value storage for configuration parameters
|
||||
/// of a given data type. The values are stored by parmater name and as instances
|
||||
/// of a given data type. The values are stored by parameter name and as instances
|
||||
/// of type "ValueType".
|
||||
///
|
||||
/// @tparam ValueType is the data type of the elements to store.
|
||||
/// @param ValueType is the data type of the elements to store.
|
||||
template<typename ValueType>
|
||||
class ValueStorage {
|
||||
public:
|
||||
/// @brief Stores the the parameter and its value in the store.
|
||||
///
|
||||
/// If the parmater does not exist in the store, then it will be added,
|
||||
/// If the parameter does not exist in the store, then it will be added,
|
||||
/// otherwise its data value will be updated with the given value.
|
||||
///
|
||||
/// @param name is the name of the paramater to store.
|
||||
/// @param value is the data value to store.
|
||||
void setParam(const std::string name, const ValueType value) {
|
||||
void setParam(const std::string name, const ValueType& value) {
|
||||
values_[name] = value;
|
||||
}
|
||||
|
||||
/// @brief Returns the data value for the given parameter.
|
||||
///
|
||||
/// Finds and returns the data value for the given parameter.
|
||||
@@ -163,12 +164,11 @@ class ValueStorage {
|
||||
= values_.find(name);
|
||||
|
||||
if (param == values_.end()) {
|
||||
isc_throw(DhcpConfigError, "missing parameter '"
|
||||
isc_throw(DhcpConfigError, "Missing parameter '"
|
||||
<< name << "'");
|
||||
}
|
||||
|
||||
ValueType value = param->second;
|
||||
return (value);
|
||||
return (param->second);
|
||||
}
|
||||
|
||||
/// @brief Remove the parameter from the store.
|
||||
@@ -177,7 +177,7 @@ class ValueStorage {
|
||||
/// exists.
|
||||
///
|
||||
/// @param name is the name of the paramater to delete.
|
||||
void delParam(const std::string name) {
|
||||
void delParam(const std::string& name) {
|
||||
values_.erase(name);
|
||||
}
|
||||
|
||||
|
@@ -41,61 +41,74 @@ namespace {
|
||||
TEST(ValueStorageTest, BooleanTesting) {
|
||||
BooleanStorage testStore;
|
||||
|
||||
// verify that we can add and retrieve them
|
||||
// Verify that we can add and retrieve parameters.
|
||||
testStore.setParam("firstBool", false);
|
||||
testStore.setParam("secondBool", true);
|
||||
|
||||
EXPECT_FALSE(testStore.getParam("firstBool"));
|
||||
EXPECT_TRUE(testStore.getParam("secondBool"));
|
||||
|
||||
// verify that we can update them
|
||||
// Verify that we can update paramaters.
|
||||
testStore.setParam("firstBool", true);
|
||||
testStore.setParam("secondBool", false);
|
||||
|
||||
EXPECT_TRUE(testStore.getParam("firstBool"));
|
||||
EXPECT_FALSE(testStore.getParam("secondBool"));
|
||||
|
||||
// verify that we can delete one
|
||||
// Verify that we can delete a parameter and it will no longer be found.
|
||||
testStore.delParam("firstBool");
|
||||
ASSERT_THROW(testStore.getParam("firstBool"), isc::dhcp::DhcpConfigError);
|
||||
|
||||
// verify that the delete was safe
|
||||
// Verify that the delete was safe and the store still operates.
|
||||
EXPECT_FALSE(testStore.getParam("secondBool"));
|
||||
|
||||
// verify that we can empty the list
|
||||
// Verify that looking for a parameter that never existed throws.
|
||||
ASSERT_THROW(testStore.getParam("bogusBool"), isc::dhcp::DhcpConfigError);
|
||||
|
||||
// Verify that attempting to delete a parameter that never existed does not throw.
|
||||
ASSERT_NO_THROW(testStore.delParam("bogusBool"));
|
||||
|
||||
// Verify that we can empty the list.
|
||||
testStore.clear();
|
||||
ASSERT_THROW(testStore.getParam("secondBool"), isc::dhcp::DhcpConfigError);
|
||||
|
||||
}
|
||||
|
||||
// This test verifies that Uint32Storage functions properly.
|
||||
TEST(ValueStorageTest, Uint32Testing) {
|
||||
Uint32Storage testStore;
|
||||
|
||||
uint32_t intOne = -77;
|
||||
uint32_t intOne = 77;
|
||||
uint32_t intTwo = 33;
|
||||
|
||||
// verify that we can add and retrieve them
|
||||
// Verify that we can add and retrieve parameters.
|
||||
testStore.setParam("firstInt", intOne);
|
||||
testStore.setParam("secondInt", intTwo);
|
||||
|
||||
EXPECT_EQ(testStore.getParam("firstInt"), intOne);
|
||||
EXPECT_EQ(testStore.getParam("secondInt"), intTwo);
|
||||
|
||||
// verify that we can update them
|
||||
// Verify that we can update parameters.
|
||||
testStore.setParam("firstInt", --intOne);
|
||||
testStore.setParam("secondInt", ++intTwo);
|
||||
|
||||
EXPECT_EQ(testStore.getParam("firstInt"), intOne);
|
||||
EXPECT_EQ(testStore.getParam("secondInt"), intTwo);
|
||||
|
||||
// verify that we can delete one
|
||||
// Verify that we can delete a parameter and it will no longer be found.
|
||||
testStore.delParam("firstInt");
|
||||
ASSERT_THROW(testStore.getParam("firstInt"), isc::dhcp::DhcpConfigError);
|
||||
|
||||
// verify that the delete was safe
|
||||
// Verify that the delete was safe and the store still operates.
|
||||
EXPECT_EQ(testStore.getParam("secondInt"), intTwo);
|
||||
|
||||
// verify that we can empty the list
|
||||
// Verify that looking for a parameter that never existed throws.
|
||||
ASSERT_THROW(testStore.getParam("bogusInt"), isc::dhcp::DhcpConfigError);
|
||||
|
||||
// Verify that attempting to delete a parameter that never existed does not throw.
|
||||
ASSERT_NO_THROW(testStore.delParam("bogusInt"));
|
||||
|
||||
// Verify that we can empty the list.
|
||||
testStore.clear();
|
||||
ASSERT_THROW(testStore.getParam("secondInt"), isc::dhcp::DhcpConfigError);
|
||||
}
|
||||
@@ -107,14 +120,14 @@ TEST(ValueStorageTest, StringTesting) {
|
||||
std::string stringOne = "seventy-seven";
|
||||
std::string stringTwo = "thirty-three";
|
||||
|
||||
// verify that we can add and retrieve them
|
||||
// Verify that we can add and retrieve parameters.
|
||||
testStore.setParam("firstString", stringOne);
|
||||
testStore.setParam("secondString", stringTwo);
|
||||
|
||||
EXPECT_EQ(testStore.getParam("firstString"), stringOne);
|
||||
EXPECT_EQ(testStore.getParam("secondString"), stringTwo);
|
||||
|
||||
// verify that we can update them
|
||||
// Verify that we can update parameters.
|
||||
stringOne.append("-boo");
|
||||
stringTwo.append("-boo");
|
||||
|
||||
@@ -124,14 +137,20 @@ TEST(ValueStorageTest, StringTesting) {
|
||||
EXPECT_EQ(testStore.getParam("firstString"), stringOne);
|
||||
EXPECT_EQ(testStore.getParam("secondString"), stringTwo);
|
||||
|
||||
// verify that we can delete one
|
||||
// Verify that we can delete a parameter and it will no longer be found.
|
||||
testStore.delParam("firstString");
|
||||
ASSERT_THROW(testStore.getParam("firstString"), isc::dhcp::DhcpConfigError);
|
||||
|
||||
// verify that the delete was safe
|
||||
// Verify that the delete was safe and the store still operates.
|
||||
EXPECT_EQ(testStore.getParam("secondString"), stringTwo);
|
||||
|
||||
// verify that we can empty the list
|
||||
// Verify that looking for a parameter that never existed throws.
|
||||
ASSERT_THROW(testStore.getParam("bogusString"), isc::dhcp::DhcpConfigError);
|
||||
|
||||
// Verify that attempting to delete a parameter that never existed does not throw.
|
||||
ASSERT_NO_THROW(testStore.delParam("bogusString"));
|
||||
|
||||
// Verify that we can empty the list.
|
||||
testStore.clear();
|
||||
ASSERT_THROW(testStore.getParam("secondString"), isc::dhcp::DhcpConfigError);
|
||||
}
|
||||
|
Reference in New Issue
Block a user