summaryrefslogtreecommitdiffstats
path: root/lib/tests/test_ini1.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tests/test_ini1.c')
-rw-r--r--lib/tests/test_ini1.c117
1 files changed, 117 insertions, 0 deletions
diff --git a/lib/tests/test_ini1.c b/lib/tests/test_ini1.c
new file mode 100644
index 0000000..c0853d7
--- /dev/null
+++ b/lib/tests/test_ini1.c
@@ -0,0 +1,117 @@
1/*****************************************************************************
2*
3* This program is free software: you can redistribute it and/or modify
4* it under the terms of the GNU General Public License as published by
5* the Free Software Foundation, either version 3 of the License, or
6* (at your option) any later version.
7*
8* This program is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details.
12*
13* You should have received a copy of the GNU General Public License
14* along with this program. If not, see <http://www.gnu.org/licenses/>.
15*
16*
17*****************************************************************************/
18
19#include "common.h"
20#include "utils_base.h"
21#include "parse_ini.h"
22
23#include "tap.h"
24
25void my_free(char *string) {
26 if (string != NULL) {
27 printf("string:\n\t|%s|\n", string);
28 free(string);
29 }
30}
31
32char*
33list2str(np_arg_list *optlst)
34{
35 char *optstr=NULL;
36 np_arg_list *optltmp;
37
38 /* Put everything as a space-separated string */
39 asprintf(&optstr, "");
40 while (optlst) {
41 asprintf(&optstr, "%s%s ", optstr, optlst->arg);
42 optltmp=optlst;
43 optlst=optlst->next;
44 free(optltmp);
45 }
46 /* Strip last whitespace */
47 if (strlen(optstr)>1) optstr[strlen(optstr)-1]='\0';
48
49 return optstr;
50}
51
52int
53main (int argc, char **argv)
54{
55 char *optstr=NULL;
56
57 plan_tests(12);
58
59 optstr=list2str(np_get_defaults("section@./config-tiny.ini", "check_disk"));
60 ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "config-tiny.ini's section as expected");
61 my_free(optstr);
62
63 optstr=list2str(np_get_defaults("@./config-tiny.ini", "section"));
64 ok( !strcmp(optstr, "--one=two --Foo=Bar --this=Your Mother! --blank"), "Used default section name, without specific");
65 my_free(optstr);
66
67 /*
68 * This check is expected to die - It's commented so we can eventually put
69 * it in a separate file for testing the return value
70 */
71 /* optstr=list2str(np_get_defaults("section_unknown@./config-tiny.ini", "section"));
72 ok( 0, "die if section isn't found");
73 my_free(optstr); */
74
75 optstr=list2str(np_get_defaults("Section Two@./config-tiny.ini", "check_disk"));
76 ok( !strcmp(optstr, "--something else=blah --remove=whitespace"), "config-tiny.ini's Section Two as expected");
77 my_free(optstr);
78
79 optstr=list2str(np_get_defaults("/path/to/file.txt@./config-tiny.ini", "check_disk"));
80 ok( !strcmp(optstr, "--this=that"), "config-tiny.ini's filename as section name");
81 my_free(optstr);
82
83 optstr=list2str(np_get_defaults("section2@./config-tiny.ini", "check_disk"));
84 ok( !strcmp(optstr, "--this=that"), "config-tiny.ini's section2 with whitespace before section name");
85 my_free(optstr);
86
87 optstr=list2str(np_get_defaults("section3@./config-tiny.ini", "check_disk"));
88 ok( !strcmp(optstr, "--this=that"), "config-tiny.ini's section3 with whitespace after section name");
89 my_free(optstr);
90
91 optstr=list2str(np_get_defaults("check_mysql@./plugin.ini", "check_disk"));
92 ok( !strcmp(optstr, "--username=operator --password=secret"), "plugin.ini's check_mysql as expected");
93 my_free(optstr);
94
95 optstr=list2str(np_get_defaults("check_mysql2@./plugin.ini", "check_disk"));
96 ok( !strcmp(optstr, "-u=admin -p=secret"), "plugin.ini's check_mysql2 as expected");
97 my_free(optstr);
98
99 optstr=list2str(np_get_defaults("check space_and_flags@./plugin.ini", "check_disk"));
100 ok( !strcmp(optstr, "--foo=bar -a -b --bar"), "plugin.ini space in stanza and flag arguments");
101 my_free(optstr);
102
103 optstr=list2str(np_get_defaults("Section Two@./config-dos.ini", "check_disk"));
104 ok( !strcmp(optstr, "--something else=blah --remove=whitespace"), "config-dos.ini's Section Two as expected");
105 my_free(optstr);
106
107 optstr=list2str(np_get_defaults("section_twice@./plugin.ini", "check_disk"));
108 ok( !strcmp(optstr, "--foo=bar --bar=foo"), "plugin.ini's section_twice defined twice in the file");
109 my_free(optstr);
110
111 optstr=list2str(np_get_defaults("tcp_long_lines@plugins.ini", "check_tcp"));
112 ok( !strcmp(optstr, "--escape --send=Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda --expect=Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda Foo bar BAZ yadda yadda yadda --jail"), "Long options");
113 my_free(optstr);
114
115 return exit_status();
116}
117