Просмотр исходного кода

Add tests for negative thresholds in test_utils

Thanks Dermoth - (https://github.com/monitoring-plugins/monitoring-plugins/commit/bc92b9392009766441c67b06398e6925cc45c2aa)
Spenser Reinhardt 12 лет назад
Родитель
Сommit
644a612ea4
1 измененных файлов с 47 добавлено и 2 удалено
  1. 47 2
      lib/tests/test_utils.c

+ 47 - 2
lib/tests/test_utils.c

@@ -32,13 +32,13 @@ main (int argc, char **argv)
 	range	*range;
 	double	temp;
 	thresholds *thresholds = NULL;
-	int	rc;
+	int	i, rc;
 	char	*temp_string;
 	state_key *temp_state_key = NULL;
 	state_data *temp_state_data;
 	time_t	current_time;
 
-	plan_tests(151);
+	plan_tests(172);
 
 	ok( this_nagios_plugin==NULL, "nagios_plugin not initialised");
 
@@ -442,6 +442,51 @@ main (int argc, char **argv)
 
 	ok( np_suid() == FALSE, "test aren't suid" );
 
+	/* base states with random case */
+	char *states[] = {
+		"Ok",
+		"wArnINg",
+		"cRiTIcaL",
+		"UnKNoWN",
+		NULL
+	};
+
+	for (i=0; states[i]!=NULL; i++) {
+		/* out of the random case states, create the lower and upper versions + numeric string one */
+		char *statelower = strdup(states[i]);
+		char *stateupper = strdup(states[i]);
+		char statenum[2];
+		char *temp_ptr;
+		for (temp_ptr = statelower; *temp_ptr; temp_ptr++) {
+			*temp_ptr = tolower(*temp_ptr);
+		}
+		for (temp_ptr = stateupper; *temp_ptr; temp_ptr++) {
+			*temp_ptr = toupper(*temp_ptr);
+		}
+		snprintf(statenum, 2, "%i", i);
+
+		/* Base test names, we'll append the state string */
+		char testname[64] = "Translate state string: ";
+		int tlen = strlen(testname);
+
+		strcpy(testname+tlen, states[i]);
+		ok(i==translate_state(states[i]), testname);
+
+		strcpy(testname+tlen, statelower);
+		ok(i==translate_state(statelower), testname);
+
+		strcpy(testname+tlen, stateupper);
+		ok(i==translate_state(stateupper), testname);
+
+		strcpy(testname+tlen, statenum);
+		ok(i==translate_state(statenum), testname);
+	}
+	ok(ERROR==translate_state("warningfewgw"), "Translate state string with garbage");
+	ok(ERROR==translate_state("00"), "Translate state string: bad numeric string 1");
+	ok(ERROR==translate_state("01"), "Translate state string: bad numeric string 2");
+	ok(ERROR==translate_state("10"), "Translate state string: bad numeric string 3");
+	ok(ERROR==translate_state(""), "Translate state string: empty string");
+
 	return exit_status();
 }