summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2012-06-09 19:40:52 -0700
committerSage Weil <sage@inktank.com>2012-06-12 11:50:54 -0700
commitce79f9e62e548397ee448ac88f9bcc1c55eae57b (patch)
treebda25883959f471585fd19c2b052175bcae82e16 /src/test
parentd422bf159d59345eb96483169de80bd5dc9996fc (diff)
downloadceph-ce79f9e62e548397ee448ac88f9bcc1c55eae57b.tar.gz
config: improve variable substitution
- allow ${foo_bar} - prevent $foogarbage from substitution variable 'foo' - use std::string throughout - improve tests Signed-off-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/daemon_config.cc49
1 files changed, 48 insertions, 1 deletions
diff --git a/src/test/daemon_config.cc b/src/test/daemon_config.cc
index 9eaf6614bcb..d643a6f4967 100644
--- a/src/test/daemon_config.cc
+++ b/src/test/daemon_config.cc
@@ -43,7 +43,39 @@ TEST(DaemonConfig, Substitution) {
ret = g_ceph_context->_conf->set_val("internal_safe_to_start_threads", "false");
ret = g_ceph_context->_conf->set_val("host", "foo");
ASSERT_EQ(ret, 0);
- ret = g_ceph_context->_conf->set_val("public_network", "bar$hostbaz", false);
+ ret = g_ceph_context->_conf->set_val("public_network", "bar$host.baz", false);
+ ASSERT_EQ(ret, 0);
+ g_ceph_context->_conf->apply_changes(NULL);
+ char buf[128];
+ memset(buf, 0, sizeof(buf));
+ char *tmp = buf;
+ ret = g_ceph_context->_conf->get_val("public_network", &tmp, sizeof(buf));
+ ASSERT_EQ(ret, 0);
+ ASSERT_EQ(string("barfoo.baz"), string(buf));
+}
+
+TEST(DaemonConfig, SubstitutionTrailing) {
+ int ret;
+ ret = g_ceph_context->_conf->set_val("internal_safe_to_start_threads", "false");
+ ret = g_ceph_context->_conf->set_val("host", "foo");
+ ASSERT_EQ(ret, 0);
+ ret = g_ceph_context->_conf->set_val("public_network", "bar$host", false);
+ ASSERT_EQ(ret, 0);
+ g_ceph_context->_conf->apply_changes(NULL);
+ char buf[128];
+ memset(buf, 0, sizeof(buf));
+ char *tmp = buf;
+ ret = g_ceph_context->_conf->get_val("public_network", &tmp, sizeof(buf));
+ ASSERT_EQ(ret, 0);
+ ASSERT_EQ(string("barfoo"), string(buf));
+}
+
+TEST(DaemonConfig, SubstitutionBraces) {
+ int ret;
+ ret = g_ceph_context->_conf->set_val("internal_safe_to_start_threads", "false");
+ ret = g_ceph_context->_conf->set_val("host", "foo");
+ ASSERT_EQ(ret, 0);
+ ret = g_ceph_context->_conf->set_val("public_network", "bar${host}baz", false);
ASSERT_EQ(ret, 0);
g_ceph_context->_conf->apply_changes(NULL);
char buf[128];
@@ -53,6 +85,21 @@ TEST(DaemonConfig, Substitution) {
ASSERT_EQ(ret, 0);
ASSERT_EQ(string("barfoobaz"), string(buf));
}
+TEST(DaemonConfig, SubstitutionBracesTrailing) {
+ int ret;
+ ret = g_ceph_context->_conf->set_val("internal_safe_to_start_threads", "false");
+ ret = g_ceph_context->_conf->set_val("host", "foo");
+ ASSERT_EQ(ret, 0);
+ ret = g_ceph_context->_conf->set_val("public_network", "bar${host}", false);
+ ASSERT_EQ(ret, 0);
+ g_ceph_context->_conf->apply_changes(NULL);
+ char buf[128];
+ memset(buf, 0, sizeof(buf));
+ char *tmp = buf;
+ ret = g_ceph_context->_conf->get_val("public_network", &tmp, sizeof(buf));
+ ASSERT_EQ(ret, 0);
+ ASSERT_EQ(string("barfoo"), string(buf));
+}
TEST(DaemonConfig, SubstitutionLoop) {
int ret;