mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-31 14:05:33 +00:00
[#3831] Fixed UT build and minor nits
modified: doc/sphinx/arm/dhcp6-srv.rst modified: doc/sphinx/arm/logging.rst modified: src/bin/d2/tests/d2_process_tests.sh.in modified: src/bin/dhcp4/tests/dhcp4_process_tests.sh.in modified: src/bin/dhcp6/json_config_parser.cc modified: src/bin/dhcp6/tests/dhcp6_process_tests.sh.in modified: src/hooks/dhcp/forensic_log/libloadtests/load_unload_unittests.cc modified: src/lib/dhcpsrv/tests/cfgmgr_unittest.cc modified: src/lib/hooks/hooks_parser.cc modified: src/lib/process/log_parser.cc modified: src/lib/process/log_parser.h modified: src/lib/testutils/env_var_wrapper.h modified: src/lib/util/filesystem.cc
This commit is contained in:
committed by
Andrei Pavel
parent
36972ffcb7
commit
dcd07a42aa
@@ -333,7 +333,6 @@ that can be used to configure the memfile backend.
|
|||||||
or, if already running, log an unrecoverable error. For ease of use in
|
or, if already running, log an unrecoverable error. For ease of use in
|
||||||
specifying a custom file name simply omit the path component from ``name``.
|
specifying a custom file name simply omit the path component from ``name``.
|
||||||
|
|
||||||
|
|
||||||
- ``lfc-interval``: specifies the interval, in seconds, at which the
|
- ``lfc-interval``: specifies the interval, in seconds, at which the
|
||||||
server will perform a lease file cleanup (LFC). This removes
|
server will perform a lease file cleanup (LFC). This removes
|
||||||
redundant (historical) information from the lease file and
|
redundant (historical) information from the lease file and
|
||||||
|
@@ -563,7 +563,7 @@ interpreted as a filename to which messages should be written.
|
|||||||
path may be overridden at startup by setting the environment variable
|
path may be overridden at startup by setting the environment variable
|
||||||
``KEA_LOG_FILE_DIR`` to the desired path. If a path other than
|
``KEA_LOG_FILE_DIR`` to the desired path. If a path other than
|
||||||
this value is used in ``output``, Kea will emit an error and refuse to start
|
this value is used in ``output``, Kea will emit an error and refuse to start
|
||||||
or, if already running, log an unrecoverable error. For ease of use simply
|
or, if already running, log an unrecoverable error. For ease of use simply
|
||||||
omit the path component from ``output`` and specify only the file name.
|
omit the path component from ``output`` and specify only the file name.
|
||||||
|
|
||||||
|
|
||||||
|
@@ -14,13 +14,14 @@ set -eu
|
|||||||
CFG_FILE="@abs_top_builddir@/src/bin/d2/tests/test_config.json"
|
CFG_FILE="@abs_top_builddir@/src/bin/d2/tests/test_config.json"
|
||||||
# Path to the D2 log file.
|
# Path to the D2 log file.
|
||||||
LOG_FILE="@abs_top_builddir@/src/bin/d2/tests/test.log"
|
LOG_FILE="@abs_top_builddir@/src/bin/d2/tests/test.log"
|
||||||
# D2 configuration to be stored in the configuration file.
|
|
||||||
# Set env KEA_HOOKS_PATH to override DEFAULT_HOOKS_PATH
|
# Set env KEA_HOOKS_PATH to override DEFAULT_HOOKS_PATH
|
||||||
export KEA_HOOKS_PATH="@abs_top_builddir@/src/bin/d2/tests/@dotlibs@"
|
export KEA_HOOKS_PATH="@abs_top_builddir@/src/bin/d2/tests/@dotlibs@"
|
||||||
|
|
||||||
# Set env KEA_LOG_FILE_DIR to override default log path
|
# Set env KEA_LOG_FILE_DIR to override default log path
|
||||||
export KEA_LOG_FILE_DIR="@abs_top_builddir@/src/bin/d2/tests"
|
export KEA_LOG_FILE_DIR="@abs_top_builddir@/src/bin/d2/tests"
|
||||||
|
|
||||||
|
# D2 configuration to be stored in the configuration file.
|
||||||
CONFIG="{
|
CONFIG="{
|
||||||
\"DhcpDdns\":
|
\"DhcpDdns\":
|
||||||
{
|
{
|
||||||
|
@@ -24,7 +24,7 @@ HOOK_FAIL_LOAD_PATH="@abs_top_builddir@/src/bin/dhcp4/tests/@dotlibs@libco3.so"
|
|||||||
# Path to test hooks library
|
# Path to test hooks library
|
||||||
HOOK_FAIL_POLL_PATH="@abs_top_builddir@/src/bin/dhcp4/tests/@dotlibs@libco4.so"
|
HOOK_FAIL_POLL_PATH="@abs_top_builddir@/src/bin/dhcp4/tests/@dotlibs@libco4.so"
|
||||||
|
|
||||||
# Set env KEA_HOOKS_PATH to override DEFAULT_HOOKS_PATH
|
# Set env KEA_HOOKS_PATH to override DEFAULT_HOOKS_PATH
|
||||||
export KEA_HOOKS_PATH="@abs_top_builddir@/src/bin/dhcp4/tests/@dotlibs@"
|
export KEA_HOOKS_PATH="@abs_top_builddir@/src/bin/dhcp4/tests/@dotlibs@"
|
||||||
|
|
||||||
# Set env KEA_LOG_FILE_DIR to override default log path.
|
# Set env KEA_LOG_FILE_DIR to override default log path.
|
||||||
|
@@ -178,9 +178,9 @@ public:
|
|||||||
if (global->contains("data-directory")) {
|
if (global->contains("data-directory")) {
|
||||||
auto dd = getString(global, "data-directory");
|
auto dd = getString(global, "data-directory");
|
||||||
if (dd != CfgMgr::instance().getDataDir()) {
|
if (dd != CfgMgr::instance().getDataDir()) {
|
||||||
isc_throw(DhcpConfigError,
|
isc_throw(DhcpConfigError,
|
||||||
"'data-directory' of '" << dd << "' is invalid,"
|
"'data-directory' of '" << dd << "' is invalid,"
|
||||||
<< " supported path is '"
|
<< " supported path is '"
|
||||||
<< CfgMgr::instance().getDataDir() << "'");
|
<< CfgMgr::instance().getDataDir() << "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -23,7 +23,8 @@ export KEA_LFC_EXECUTABLE="@abs_top_builddir@/src/bin/lfc/kea-lfc"
|
|||||||
HOOK_FAIL_LOAD_PATH="@abs_top_builddir@/src/bin/dhcp6/tests/@dotlibs@libco3.so"
|
HOOK_FAIL_LOAD_PATH="@abs_top_builddir@/src/bin/dhcp6/tests/@dotlibs@libco3.so"
|
||||||
# Path to test hooks library
|
# Path to test hooks library
|
||||||
HOOK_FAIL_POLL_PATH="@abs_top_builddir@/src/bin/dhcp6/tests/@dotlibs@libco4.so"
|
HOOK_FAIL_POLL_PATH="@abs_top_builddir@/src/bin/dhcp6/tests/@dotlibs@libco4.so"
|
||||||
# Set env KEA_HOOKS_PATH to override DEFAULT_HOOKS_PATH
|
|
||||||
|
# Set env KEA_HOOKS_PATH to override DEFAULT_HOOKS_PATH
|
||||||
export KEA_HOOKS_PATH="@abs_top_builddir@/src/bin/dhcp6/tests/@dotlibs@"
|
export KEA_HOOKS_PATH="@abs_top_builddir@/src/bin/dhcp6/tests/@dotlibs@"
|
||||||
|
|
||||||
# Set env KEA_LOG_FILE_DIR to override default log path
|
# Set env KEA_LOG_FILE_DIR to override default log path
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
#include <dhcpsrv/testutils/lib_load_test_fixture.h>
|
#include <dhcpsrv/testutils/lib_load_test_fixture.h>
|
||||||
#include <exceptions/exceptions.h>
|
#include <exceptions/exceptions.h>
|
||||||
#include <hooks/hooks_manager.h>
|
#include <hooks/hooks_manager.h>
|
||||||
|
#include <dhcpsrv/legal_log_mgr.h>
|
||||||
#include <testutils/gtest_utils.h>
|
#include <testutils/gtest_utils.h>
|
||||||
|
|
||||||
#ifdef HAVE_MYSQL
|
#ifdef HAVE_MYSQL
|
||||||
|
@@ -288,7 +288,7 @@ public:
|
|||||||
/// @brief Sets the DHCP data path for server data files.
|
/// @brief Sets the DHCP data path for server data files.
|
||||||
/// @param custom_path path to use.
|
/// @param custom_path path to use.
|
||||||
void setDataDir(const std::string explicit_path = "") {
|
void setDataDir(const std::string explicit_path = "") {
|
||||||
CfgMgr::instance().getDataDir(true,
|
CfgMgr::instance().getDataDir(true,
|
||||||
(!explicit_path.empty() ?
|
(!explicit_path.empty() ?
|
||||||
explicit_path : std::string(DHCP_DATA_DIR)));
|
explicit_path : std::string(DHCP_DATA_DIR)));
|
||||||
}
|
}
|
||||||
|
@@ -98,7 +98,7 @@ HooksLibrariesParser::parse(HooksConfig& libraries, ConstElementPtr value) {
|
|||||||
libname = validatePath((entry_item.second)->stringValue());
|
libname = validatePath((entry_item.second)->stringValue());
|
||||||
} catch (const std::exception& ex) {
|
} catch (const std::exception& ex) {
|
||||||
isc_throw(DhcpConfigError, "hooks library configuration"
|
isc_throw(DhcpConfigError, "hooks library configuration"
|
||||||
" error: " << ex.what() << " ("
|
" error: " << ex.what() << " ("
|
||||||
<< entry_item.second->getPosition() << ")");
|
<< entry_item.second->getPosition() << ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -155,7 +155,6 @@ LogConfigParser::validatePath(const std::string logpath,
|
|||||||
return (log_path_checker_->validatePath(logpath, enforce_path));
|
return (log_path_checker_->validatePath(logpath, enforce_path));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LogConfigParser::parseOutputOptions(std::vector<LoggingDestination>& destination,
|
void LogConfigParser::parseOutputOptions(std::vector<LoggingDestination>& destination,
|
||||||
isc::data::ConstElementPtr output_options) {
|
isc::data::ConstElementPtr output_options) {
|
||||||
if (!output_options) {
|
if (!output_options) {
|
||||||
@@ -181,8 +180,8 @@ void LogConfigParser::parseOutputOptions(std::vector<LoggingDestination>& destin
|
|||||||
try {
|
try {
|
||||||
dest.output_ = validatePath(output_str);
|
dest.output_ = validatePath(output_str);
|
||||||
} catch (const std::exception& ex) {
|
} catch (const std::exception& ex) {
|
||||||
isc_throw(BadValue, "invalid path in `output`: " << ex.what()
|
isc_throw(BadValue, "invalid path in `output`: " << ex.what()
|
||||||
<< " (" << output_option->getPosition() << ")");
|
<< " (" << output_option->getPosition() << ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -58,7 +58,7 @@ public:
|
|||||||
void parseConfiguration(const isc::data::ConstElementPtr& log_config,
|
void parseConfiguration(const isc::data::ConstElementPtr& log_config,
|
||||||
bool verbose = false);
|
bool verbose = false);
|
||||||
|
|
||||||
/// @brief Fetches the supported log file path.
|
/// @brief Fetches the supported log file path.
|
||||||
///
|
///
|
||||||
/// The first call to this function with no arguments will set the default
|
/// The first call to this function with no arguments will set the default
|
||||||
/// hooks path to either the value of LOGFILE_DIR or the environment
|
/// hooks path to either the value of LOGFILE_DIR or the environment
|
||||||
@@ -80,7 +80,7 @@ public:
|
|||||||
///
|
///
|
||||||
/// @return validated path
|
/// @return validated path
|
||||||
static std::string validatePath(const std::string logpath, bool enforce_path = true);
|
static std::string validatePath(const std::string logpath, bool enforce_path = true);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/// @brief Parses one JSON structure in Server/loggers" array
|
/// @brief Parses one JSON structure in Server/loggers" array
|
||||||
|
@@ -45,7 +45,7 @@ private:
|
|||||||
std::string name_;
|
std::string name_;
|
||||||
|
|
||||||
/// @brief Value of the env variable at the time the wrapper
|
/// @brief Value of the env variable at the time the wrapper
|
||||||
/// was constructed.
|
/// was constructed.
|
||||||
std::string original_value_;
|
std::string original_value_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -257,7 +257,7 @@ PathChecker::validatePath(const std::string input_path_str,
|
|||||||
auto filename = input_path.filename();
|
auto filename = input_path.filename();
|
||||||
if (filename.empty()) {
|
if (filename.empty()) {
|
||||||
isc_throw(BadValue, "path: '" << input_path.str() << "' has no filename");
|
isc_throw(BadValue, "path: '" << input_path.str() << "' has no filename");
|
||||||
}
|
}
|
||||||
|
|
||||||
auto parent_path = input_path.parentPath();
|
auto parent_path = input_path.parentPath();
|
||||||
if (!parent_path.empty()) {
|
if (!parent_path.empty()) {
|
||||||
|
Reference in New Issue
Block a user