aboutsummaryrefslogtreecommitdiffstats
path: root/config/src/tests/misc
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-06-30 08:30:22 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2016-06-30 08:30:22 +0000
commit65c0a35a100c29491a92be209c37a6bb43e4a695 (patch)
tree374ee6460ccf38fe37d1cd1d80ce55ed3c4ee2e1 /config/src/tests/misc
parentf3832fc495cbdb9059573f12b7a0c515b284c9fd (diff)
Add test for ConfigSystem.isUp
Diffstat (limited to 'config/src/tests/misc')
-rw-r--r--config/src/tests/misc/.gitignore1
-rw-r--r--config/src/tests/misc/CMakeLists.txt7
-rw-r--r--config/src/tests/misc/configsystem.cpp54
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(); }