]> pilppa.org Git - libplp.git/blobdiff - src_test/test_config1.c
api fixes and cleanups
[libplp.git] / src_test / test_config1.c
diff --git a/src_test/test_config1.c b/src_test/test_config1.c
new file mode 100644 (file)
index 0000000..8bddb50
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * 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;
+}