--- /dev/null
+/*
+ * 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;
+}