diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/tests/config-dos.ini | 24 | ||||
-rw-r--r-- | lib/tests/plugin.ini | 6 | ||||
-rw-r--r-- | lib/tests/test_ini.c | 13 |
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 00000000..0cea3f3a --- /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] | ||
7 | one=two | ||
8 | Foo=Bar | ||
9 | this=Your Mother! | ||
10 | blank= | ||
11 | |||
12 | [Section Two] | ||
13 | something else=blah | ||
14 | remove = whitespace | ||
15 | |||
16 | [ /path/to/file.txt ] | ||
17 | this=that | ||
18 | |||
19 | [ section2] | ||
20 | this=that | ||
21 | |||
22 | [section3 ] | ||
23 | this=that | ||
24 | |||
diff --git a/lib/tests/plugin.ini b/lib/tests/plugin.ini index d07fc4f3..e22f8bdb 100644 --- a/lib/tests/plugin.ini +++ b/lib/tests/plugin.ini | |||
@@ -3,10 +3,16 @@ | |||
3 | username=operator | 3 | username=operator |
4 | password=secret # Remember to change later | 4 | password=secret # Remember to change later |
5 | 5 | ||
6 | [section_twice] | ||
7 | foo=bar | ||
8 | |||
6 | [check_mysql2] | 9 | [check_mysql2] |
7 | u=admin | 10 | u=admin |
8 | p=secret | 11 | p=secret |
9 | 12 | ||
13 | [section_twice] | ||
14 | bar=foo | ||
15 | |||
10 | [check space_and_flags] | 16 | [check space_and_flags] |
11 | foo=bar | 17 | foo=bar |
12 | a= | 18 | a= |
diff --git a/lib/tests/test_ini.c b/lib/tests/test_ini.c index 9031f7f8..84749279 100644 --- a/lib/tests/test_ini.c +++ b/lib/tests/test_ini.c | |||
@@ -34,12 +34,15 @@ char* | |||
34 | list2str(np_arg_list *optlst) | 34 | list2str(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 | ||