diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2016-06-30 08:30:22 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2016-06-30 08:30:22 +0000 |
commit | 65c0a35a100c29491a92be209c37a6bb43e4a695 (patch) | |
tree | 374ee6460ccf38fe37d1cd1d80ce55ed3c4ee2e1 /config/src/tests/misc | |
parent | f3832fc495cbdb9059573f12b7a0c515b284c9fd (diff) |
Add test for ConfigSystem.isUp
Diffstat (limited to 'config/src/tests/misc')
-rw-r--r-- | config/src/tests/misc/.gitignore | 1 | ||||
-rw-r--r-- | config/src/tests/misc/CMakeLists.txt | 7 | ||||
-rw-r--r-- | config/src/tests/misc/configsystem.cpp | 54 |
3 files changed, 62 insertions, 0 deletions
diff --git a/config/src/tests/misc/.gitignore b/config/src/tests/misc/.gitignore index d6c1f6760a4..91168ae6c44 100644 --- a/config/src/tests/misc/.gitignore +++ b/config/src/tests/misc/.gitignore @@ -1 +1,2 @@ config_misc_test_app +config_configsystem_test_app diff --git a/config/src/tests/misc/CMakeLists.txt b/config/src/tests/misc/CMakeLists.txt index 928fd41cd36..2c20a2e9b41 100644 --- a/config/src/tests/misc/CMakeLists.txt +++ b/config/src/tests/misc/CMakeLists.txt @@ -5,4 +5,11 @@ vespa_add_executable(config_misc_test_app TEST DEPENDS config_cloudconfig ) +vespa_add_executable(config_configsystem_test_app TEST + SOURCES + configsystem.cpp + DEPENDS + config_cloudconfig +) vespa_add_test(NAME config_misc_test_app COMMAND config_misc_test_app) +vespa_add_test(NAME config_configsystem_test_app COMMAND config_configsystem_test_app) diff --git a/config/src/tests/misc/configsystem.cpp b/config/src/tests/misc/configsystem.cpp new file mode 100644 index 00000000000..cef5a917732 --- /dev/null +++ b/config/src/tests/misc/configsystem.cpp @@ -0,0 +1,54 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/vespalib/testkit/test_kit.h> +#include <vespa/config/common/configsystem.h> +#include <vespa/defaults.h> + +using namespace config; + +namespace { + +const char *VESPA_HOME="VESPA_HOME"; +char cwd[1024]; + +} + +TEST("require that bad home directory fails") { + ASSERT_TRUE(nullptr != getcwd(cwd, sizeof(cwd))); + ASSERT_EQUAL(0, setenv(VESPA_HOME, "/nowhere/near/", 1)); + vespa::Defaults::bootstrap("/nowhere/near/"); + ConfigSystem configSystem; + ASSERT_FALSE(configSystem.isUp()); +} + +TEST("require that incorrect pid file type fails") { + ASSERT_TRUE(nullptr != getcwd(cwd, sizeof(cwd))); + FastOS_File::EmptyAndRemoveDirectory("var"); + FastOS_File::MakeDirIfNotPresentOrExit("var"); + FastOS_File::MakeDirIfNotPresentOrExit("var/run"); + FastOS_File::MakeDirIfNotPresentOrExit("var/run/configproxy.pid"); + + ASSERT_EQUAL(0, setenv(VESPA_HOME, cwd, 1)); + vespa::Defaults::bootstrap(cwd); + ConfigSystem configSystem; + ASSERT_FALSE(configSystem.isUp()); + FastOS_File::EmptyAndRemoveDirectory("var"); +} + +TEST("require that correct pid file succeeds") { + ASSERT_TRUE(nullptr != getcwd(cwd, sizeof(cwd))); + FastOS_File::EmptyAndRemoveDirectory("var"); + FastOS_File::MakeDirIfNotPresentOrExit("var"); + FastOS_File::MakeDirIfNotPresentOrExit("var/run"); + FastOS_File pid_file("var/run/configproxy.pid"); + pid_file.OpenWriteOnlyTruncate(); + pid_file.Close(); + + ASSERT_EQUAL(0, setenv(VESPA_HOME, cwd, 1)); + vespa::Defaults::bootstrap(cwd); + ConfigSystem configSystem; + ASSERT_TRUE(configSystem.isUp()); + FastOS_File::EmptyAndRemoveDirectory("var"); +} + +TEST_MAIN() { TEST_RUN_ALL(); } |