]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test: use config set_val_or_die instead of set_val
authorJohn Spray <john.spray@redhat.com>
Thu, 20 Jul 2017 15:53:38 +0000 (11:53 -0400)
committerJohn Spray <john.spray@redhat.com>
Fri, 21 Jul 2017 10:27:30 +0000 (06:27 -0400)
...in places that the return code was not being checked.

This fixes cases where an error in the config schema or the
value being passed in would cause weird failures beacuse the
set_val had not taken effect.

Signed-off-by: John Spray <john.spray@redhat.com>
src/common/config.cc
src/common/config.h
src/test/erasure-code/TestErasureCodeShec_all.cc
src/test/erasure-code/TestErasureCodeShec_arguments.cc
src/test/erasure-code/ceph_erasure_code.cc
src/test/erasure-code/ceph_erasure_code_non_regression.cc
src/test/unit.cc

index 39a48cae88451bc077554d3ab76d78c568766f96..ea4c5065afa42f2a05e64b0d96f91b882eb5a612 100644 (file)
@@ -765,9 +765,15 @@ int md_config_t::injectargs(const std::string& s, std::ostream *oss)
   return ret;
 }
 
-void md_config_t::set_val_or_die(const std::string &key, const char *val)
+void md_config_t::set_val_or_die(const std::string &key,
+                                 const std::string &val,
+                                 bool meta)
 {
-  int ret = set_val(key, val);
+  std::stringstream err;
+  int ret = set_val(key, val, meta, &err);
+  if (ret != 0) {
+    std::cerr << "set_val_or_die(" << key << "): " << err.str();
+  }
   assert(ret == 0);
 }
 
index e12228a2b27b8ee86054891db5911148f3c1dad4..a36b9d13e648a807ff93cb2aa67e9f2bd3359d54 100644 (file)
@@ -144,7 +144,8 @@ public:
 
   // Set a configuration value, or crash
   // Metavariables will be expanded.
-  void set_val_or_die(const std::string &key, const char *val);
+  void set_val_or_die(const std::string &key, const std::string &val,
+                      bool meta=true);
 
   // Set a configuration value.
   // Metavariables will be expanded.
index 310fd88cb83f036e3a7f953fbfac349a33b31749..9150cbd65e37147cc37b0e6066fabdb00d32f995 100644 (file)
@@ -300,7 +300,7 @@ int main(int argc, char **argv)
 
   const char* env = getenv("CEPH_LIB");
   string directory(env ? env : ".libs");
-  g_conf->set_val("erasure_code_dir", directory, false);
+  g_conf->set_val_or_die("erasure_code_dir", directory, false);
 
   ::testing::InitGoogleTest(&argc, argv);
 
index 9caa9a8dd29ea3be63dab46a7c989b268c831c26..10e1a0b27e016fe56f2cc50cd3209e22fe709784 100644 (file)
@@ -399,7 +399,7 @@ int main(int argc, char **argv)
 
   const char* env = getenv("CEPH_LIB");
   std::string directory(env ? env : ".libs");
-  g_conf->set_val("erasure_code_dir", directory, false);
+  g_conf->set_val_or_die("erasure_code_dir", directory, false);
 
   ::testing::InitGoogleTest(&argc, argv);
 
index f15c698a58ee12cfb3a4c85ac1eea662a6315007..249362fec5a089c6606e17a2571bccf7ce6e6174 100644 (file)
@@ -91,7 +91,7 @@ int ErasureCodeCommand::setup(int argc, char** argv) {
   g_ceph_context->_conf->apply_changes(NULL);
   const char* env = getenv("CEPH_LIB");
   string directory(env ? env : ".libs");
-  g_conf->set_val("erasure_code_dir", directory, false);
+  g_conf->set_val_or_die("erasure_code_dir", directory, false);
 
   if (vm.count("help")) {
     cout << desc << std::endl;
index 32e4be3d161e8e6231acb49a24f497c19775e649..355191714b7c30ce96ece66a8fd6dd6fc9571331 100644 (file)
@@ -98,7 +98,7 @@ int ErasureCodeNonRegression::setup(int argc, char** argv) {
   g_ceph_context->_conf->apply_changes(NULL);
   const char* env = getenv("CEPH_LIB");
   std::string libs_dir(env ? env : ".libs");
-  g_conf->set_val("erasure_code_dir", libs_dir, false);
+  g_conf->set_val_or_die("erasure_code_dir", libs_dir, false);
 
   if (vm.count("help")) {
     cout << desc << std::endl;
index bd895f50a6c267863d9e0f571f1eec2ada883ea8..8c901ea95ce8cf91995b1f251a916c72085fccae 100644 (file)
@@ -43,8 +43,8 @@ int main(int argc, char **argv) {
 
   const char* env = getenv("CEPH_LIB");
   if (env) {
-    g_conf->set_val("erasure_code_dir", env, false);
-    g_conf->set_val("plugin_dir", env, false);
+    g_conf->set_val_or_die("erasure_code_dir", env, false);
+    g_conf->set_val_or_die("plugin_dir", env, false);
   }
 
   ::testing::InitGoogleTest(&argc, argv);