--- /dev/null
+/*
+ * test_w1.cc
+ *
+ * Created on: Oct 20, 2010
+ * Author: lamikr
+ */
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "../src/config.h"
+
+#define CONF_FILENAME "dev_cfg_txt"
+#define SECTION_TYPE "mysection_type"
+#define SECTION_TYPE2 "mysection_type2"
+#define SECTION_NAME "mysection_name"
+#define SECTION_NAME2 "mysection_name2"
+
+#define KEY_NAME "key_name"
+#define KEY_NAME2 "key_name2"
+#define KEY_NAME3 "key_name3"
+#define KEY_NAME_INVALID_READ "key_name_invalid"
+
+#define VALUE1 "val1"
+#define VALUE2 "val2"
+#define VALUE3 "val3"
+#define VALUE4 "val4"
+
+int test_config() {
+ char work_dir[FILENAME_MAX];
+ char *val;
+
+ getcwd(work_dir, sizeof(work_dir));
+ printf("working directory: %s\n", work_dir);
+
+ set_config_value_and_save(work_dir,
+ CONF_FILENAME,
+ SECTION_TYPE,
+ SECTION_NAME,
+ KEY_NAME,
+ VALUE1);
+ val = get_config_value_and_close(work_dir,
+ CONF_FILENAME,
+ SECTION_NAME,
+ KEY_NAME);
+ if ((val != NULL) &&
+ (strcmp(val, VALUE1) == 0)) {
+ printf("value 1 read ok: %s\n", val);
+ free(val);
+ }
+ else {
+ printf("failed to read value\n");
+ return 1;
+ }
+
+ val = get_config_value_and_close(work_dir,
+ CONF_FILENAME,
+ SECTION_NAME,
+ KEY_NAME_INVALID_READ);
+ if ((val != NULL) &&
+ (strcmp(val, VALUE1) == 0)) {
+ printf("pl, should not be possible to read invalid key value.\n");
+ return 0;
+ }
+ else {
+ printf("error, value was supposed to be NULL, but is: %s\n", val);
+ }
+ set_config_value_and_save(work_dir,
+ CONF_FILENAME,
+ SECTION_TYPE,
+ SECTION_NAME,
+ KEY_NAME,
+ VALUE2);
+ set_config_value_and_save(work_dir,
+ CONF_FILENAME,
+ SECTION_TYPE,
+ SECTION_NAME,
+ KEY_NAME2,
+ VALUE3);
+ set_config_value_and_save(work_dir,
+ CONF_FILENAME,
+ SECTION_TYPE2,
+ SECTION_NAME2,
+ KEY_NAME3,
+ VALUE4);
+ return 0;
+}
+
+int main(int argc, char** argv) {
+ test_config();
+ return 0;
+}