summaryrefslogtreecommitdiffstats
path: root/lib/tests
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tests')
-rw-r--r--lib/tests/config-dos.ini24
-rw-r--r--lib/tests/plugin.ini6
-rw-r--r--lib/tests/test_ini.c13
3 files changed, 42 insertions, 1 deletions
diff --git a/lib/tests/config-dos.ini b/lib/tests/config-dos.ini
new file mode 100644
index 0000000..0cea3f3
--- /dev/null
+++ b/lib/tests/config-dos.ini
@@ -0,0 +1,24 @@
1# This config file is amended from perl's Config::Tiny's testcases
2
3# Line below is allowed in perl's Config::Tiny, but not in our parse_ini.c
4#root=something
5
6[section]
7one=two
8Foo=Bar
9this=Your Mother!
10blank=
11
12[Section Two]
13something else=blah
14 remove = whitespace
15
16[ /path/to/file.txt ]
17this=that
18
19[ section2]
20this=that
21
22[section3 ]
23this=that
24
diff --git a/lib/tests/plugin.ini b/lib/tests/plugin.ini
index d07fc4f..e22f8bd 100644
--- a/lib/tests/plugin.ini
+++ b/lib/tests/plugin.ini
@@ -3,10 +3,16 @@
3username=operator 3username=operator
4password=secret # Remember to change later 4password=secret # Remember to change later
5 5
6[section_twice]
7foo=bar
8
6[check_mysql2] 9[check_mysql2]
7u=admin 10u=admin
8p=secret 11p=secret
9 12
13[section_twice]
14bar=foo
15
10[check space_and_flags] 16[check space_and_flags]
11foo=bar 17foo=bar
12a= 18a=
diff --git a/lib/tests/test_ini.c b/lib/tests/test_ini.c
index 9031f7f..8474927 100644
--- a/lib/tests/test_ini.c
+++ b/lib/tests/test_ini.c
@@ -34,12 +34,15 @@ char*
34list2str(np_arg_list *optlst) 34list2str(np_arg_list *optlst)
35{ 35{
36 char *optstr=NULL; 36 char *optstr=NULL;
37 np_arg_list *optltmp;
37 38
38 /* Put everything as a space-separated string */ 39 /* Put everything as a space-separated string */
39 asprintf(&optstr, ""); 40 asprintf(&optstr, "");
40 while (optlst) { 41 while (optlst) {
41 asprintf(&optstr, "%s%s ", optstr, optlst->arg); 42 asprintf(&optstr, "%s%s ", optstr, optlst->arg);
43 optltmp=optlst;
42 optlst=optlst->next; 44 optlst=optlst->next;
45 free(optltmp);
43 } 46 }
44 /* Strip last whitespace */ 47 /* Strip last whitespace */
45 if (strlen(optstr)>1) optstr[strlen(optstr)-1]='\0'; 48 if (strlen(optstr)>1) optstr[strlen(optstr)-1]='\0';
@@ -52,7 +55,7 @@ main (int argc, char **argv)
52{ 55{
53 char *optstr=NULL; 56 char *optstr=NULL;
54 57
55 plan_tests(10); 58 plan_tests(12);
56 59
57 optstr=list2str(np_get_defaults("section@./config-tiny.ini", "check_disk")); 60 optstr=list2str(np_get_defaults("section@./config-tiny.ini", "check_disk"));
58 ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "config-tiny.ini's section as expected"); 61 ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "config-tiny.ini's section as expected");
@@ -94,6 +97,14 @@ main (int argc, char **argv)
94 ok( !strcmp(optstr, "--foo=bar -a -b --bar"), "plugin.ini space in stanza and flag arguments"); 97 ok( !strcmp(optstr, "--foo=bar -a -b --bar"), "plugin.ini space in stanza and flag arguments");
95 my_free(optstr); 98 my_free(optstr);
96 99
100 optstr=list2str(np_get_defaults("Section Two@./config-dos.ini", "check_disk"));
101 ok( !strcmp(optstr, "--something else=blah --remove=whitespace"), "config-dos.ini's Section Two as expected");
102 my_free(optstr);
103
104 optstr=list2str(np_get_defaults("section_twice@./plugin.ini", "check_disk"));
105 ok( !strcmp(optstr, "--foo=bar --bar=foo"), "plugin.ini's section_twice defined twice in the file");
106 my_free(optstr);
107
97 return exit_status(); 108 return exit_status();
98} 109}
99 110