Преглед изворни кода

Add tests:
- DOS-newline ini file
- section defined twice


git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1951 f882894a-f735-0410-b71e-b25c423dba1c

Thomas Guyot-Sionnest пре 18 година
родитељ
комит
4a7ff5e952
3 измењених фајлова са 42 додато и 1 уклоњено
  1. 24 0
      lib/tests/config-dos.ini
  2. 6 0
      lib/tests/plugin.ini
  3. 12 1
      lib/tests/test_ini.c

+ 24 - 0
lib/tests/config-dos.ini

@@ -0,0 +1,24 @@
+# This config file is amended from perl's Config::Tiny's testcases
+
+# Line below is allowed in perl's Config::Tiny, but not in our parse_ini.c
+#root=something
+
+[section]
+one=two
+Foo=Bar
+this=Your Mother!
+blank=
+
+[Section Two]
+something else=blah
+ remove = whitespace   	
+
+[ /path/to/file.txt ]
+this=that
+
+[ section2]
+this=that
+
+[section3 ]
+this=that
+

+ 6 - 0
lib/tests/plugin.ini

@@ -3,10 +3,16 @@
 username=operator
 password=secret		# Remember to change later
 
+[section_twice]
+foo=bar
+
 [check_mysql2]
 u=admin
 p=secret
 
+[section_twice]
+bar=foo
+
 [check space_and_flags]
 foo=bar
 a=

+ 12 - 1
lib/tests/test_ini.c

@@ -34,12 +34,15 @@ char*
 list2str(np_arg_list *optlst)
 {
 	char *optstr=NULL;
+	np_arg_list *optltmp;
 
 	/* Put everything as a space-separated string */
 	asprintf(&optstr, "");
 	while (optlst) {
 		asprintf(&optstr, "%s%s ", optstr, optlst->arg);
+		optltmp=optlst;
 		optlst=optlst->next;
+		free(optltmp);
 	}
 	/* Strip last whitespace */
 	if (strlen(optstr)>1) optstr[strlen(optstr)-1]='\0';
@@ -52,7 +55,7 @@ main (int argc, char **argv)
 {
 	char *optstr=NULL;
 
-	plan_tests(10);
+	plan_tests(12);
 
 	optstr=list2str(np_get_defaults("section@./config-tiny.ini", "check_disk"));
 	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)
 	ok( !strcmp(optstr, "--foo=bar -a -b --bar"), "plugin.ini space in stanza and flag arguments");
 	my_free(optstr);
 
+	optstr=list2str(np_get_defaults("Section Two@./config-dos.ini", "check_disk"));
+	ok( !strcmp(optstr, "--something else=blah --remove=whitespace"), "config-dos.ini's Section Two as expected");
+	my_free(optstr);
+
+	optstr=list2str(np_get_defaults("section_twice@./plugin.ini", "check_disk"));
+	ok( !strcmp(optstr, "--foo=bar --bar=foo"), "plugin.ini's section_twice defined twice in the file");
+	my_free(optstr);
+
 	return exit_status();
 }