diff options
author | Sage Weil <sage@inktank.com> | 2012-06-09 19:40:52 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2012-06-12 11:50:54 -0700 |
commit | ce79f9e62e548397ee448ac88f9bcc1c55eae57b (patch) | |
tree | bda25883959f471585fd19c2b052175bcae82e16 /src/test | |
parent | d422bf159d59345eb96483169de80bd5dc9996fc (diff) | |
download | ceph-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.cc | 49 |
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; |