]> pilppa.org Git - libplp.git/blobdiff - src_test/test_config2.cc
api fixes and cleanups
[libplp.git] / src_test / test_config2.cc
diff --git a/src_test/test_config2.cc b/src_test/test_config2.cc
new file mode 100644 (file)
index 0000000..9b0cf5e
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * test_config2.cc
+ *
+ *  Created on: Aug 3, 2012
+ *      Author: lamikr
+ */
+#include <string>
+#include "../src/DeviceConfig.hh"
+#include "../src/FileUtil.hh"
+#include "../src/log.h"
+
+using namespace plp;
+using namespace std;
+
+#define DEVICE_NAME1   "device_1"
+#define KEY_NAME1      "key1"
+#define KEY_NAME2      "key2"
+#define KEY_NAME3      "key3"
+
+#define VALUE_NAME1    "val1"
+#define VALUE_NAME2    "val2"
+#define VALUE_NAME3    "val3"
+
+int test_config() {
+       DeviceConfig *dev_cfg;
+       string val;
+       string fname_full;
+       string fname_path;
+       bool    succ;
+
+       DeviceConfig::set_base_dir_name("/tmp/test");
+       dev_cfg         = new DeviceConfig(DEVICE_NAME1);
+       fname_full      = dev_cfg->get_config_file_name();
+       fname_path      = FileUtil::parse_directory_path(fname_full.c_str());
+       log_info("file-name: %s, path_name: %s\n",
+               fname_full.c_str(), fname_path.c_str());
+       dev_cfg->set_config_value(KEY_NAME1, VALUE_NAME1, false);
+       // check that read works even if values have not been saved yet
+       succ    = dev_cfg->get_config_value(KEY_NAME1, val);
+       if (succ) {
+               log_info("val1: %s\n", val.c_str());
+       }
+       else {
+               log_error("failed to get value for key: %s\n", KEY_NAME1);
+       }
+       dev_cfg->set_config_value(KEY_NAME2, VALUE_NAME2, true);
+       succ    = dev_cfg->get_config_value(KEY_NAME2, val);
+       if (succ) {
+               log_info("val2: %s\n", val.c_str());
+       }
+       else {
+               log_error("failed to get value for key: %s\n", KEY_NAME2);
+       }
+       succ    = dev_cfg->get_config_value(KEY_NAME2, val);
+       if (succ) {
+               log_info("val3: %s\n", val.c_str());
+       }
+       else {
+               log_error("failed to get value for key: %s\n", KEY_NAME2);
+       }
+       dev_cfg->set_config_value(KEY_NAME3, VALUE_NAME3, false);
+       // check whether device_config destructor will do the final save
+       delete(dev_cfg);
+
+       return 0;
+}
+
+int main(int argc, char** argv) {
+       test_config();
+       return 0;
+}