diff options
Diffstat (limited to 'lib/tests/test_utils.c')
| -rw-r--r-- | lib/tests/test_utils.c | 491 |
1 files changed, 233 insertions, 258 deletions
diff --git a/lib/tests/test_utils.c b/lib/tests/test_utils.c index 01afacdc..c3150f00 100644 --- a/lib/tests/test_utils.c +++ b/lib/tests/test_utils.c | |||
| @@ -1,20 +1,20 @@ | |||
| 1 | /***************************************************************************** | 1 | /***************************************************************************** |
| 2 | * | 2 | * |
| 3 | * This program is free software: you can redistribute it and/or modify | 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 | 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 | 5 | * the Free Software Foundation, either version 3 of the License, or |
| 6 | * (at your option) any later version. | 6 | * (at your option) any later version. |
| 7 | * | 7 | * |
| 8 | * This program is distributed in the hope that it will be useful, | 8 | * This program is distributed in the hope that it will be useful, |
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | * GNU General Public License for more details. | 11 | * GNU General Public License for more details. |
| 12 | * | 12 | * |
| 13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 15 | * | 15 | * |
| 16 | * | 16 | * |
| 17 | *****************************************************************************/ | 17 | *****************************************************************************/ |
| 18 | 18 | ||
| 19 | #include "common.h" | 19 | #include "common.h" |
| 20 | #include "utils_base.h" | 20 | #include "utils_base.h" |
| @@ -27,331 +27,323 @@ | |||
| 27 | 27 | ||
| 28 | #include "utils_base.c" | 28 | #include "utils_base.c" |
| 29 | 29 | ||
| 30 | int | 30 | int main(int argc, char **argv) { |
| 31 | main (int argc, char **argv) | ||
| 32 | { | ||
| 33 | char state_path[1024]; | 31 | char state_path[1024]; |
| 34 | range *range; | 32 | range *range; |
| 35 | double temp; | 33 | double temp; |
| 36 | thresholds *thresholds = NULL; | 34 | thresholds *thresholds = NULL; |
| 37 | int i, rc; | 35 | int i, rc; |
| 38 | char *temp_string; | 36 | char *temp_string; |
| 39 | state_key *temp_state_key = NULL; | 37 | state_key *temp_state_key = NULL; |
| 40 | state_data *temp_state_data; | 38 | state_data *temp_state_data; |
| 41 | time_t current_time; | 39 | time_t current_time; |
| 42 | 40 | ||
| 43 | plan_tests(185); | 41 | plan_tests(185); |
| 44 | 42 | ||
| 45 | ok( this_monitoring_plugin==NULL, "monitoring_plugin not initialised"); | 43 | ok(this_monitoring_plugin == NULL, "monitoring_plugin not initialised"); |
| 46 | 44 | ||
| 47 | np_init( "check_test", argc, argv ); | 45 | np_init("check_test", argc, argv); |
| 48 | 46 | ||
| 49 | ok( this_monitoring_plugin!=NULL, "monitoring_plugin now initialised"); | 47 | ok(this_monitoring_plugin != NULL, "monitoring_plugin now initialised"); |
| 50 | ok( !strcmp(this_monitoring_plugin->plugin_name, "check_test"), "plugin name initialised" ); | 48 | ok(!strcmp(this_monitoring_plugin->plugin_name, "check_test"), "plugin name initialised"); |
| 51 | 49 | ||
| 52 | ok( this_monitoring_plugin->argc==argc, "Argc set" ); | 50 | ok(this_monitoring_plugin->argc == argc, "Argc set"); |
| 53 | ok( this_monitoring_plugin->argv==argv, "Argv set" ); | 51 | ok(this_monitoring_plugin->argv == argv, "Argv set"); |
| 54 | 52 | ||
| 55 | np_set_args(0,0); | 53 | np_set_args(0, 0); |
| 56 | 54 | ||
| 57 | ok( this_monitoring_plugin->argc==0, "argc changed" ); | 55 | ok(this_monitoring_plugin->argc == 0, "argc changed"); |
| 58 | ok( this_monitoring_plugin->argv==0, "argv changed" ); | 56 | ok(this_monitoring_plugin->argv == 0, "argv changed"); |
| 59 | 57 | ||
| 60 | np_set_args(argc, argv); | 58 | np_set_args(argc, argv); |
| 61 | 59 | ||
| 62 | range = parse_range_string("6"); | 60 | range = parse_range_string("6"); |
| 63 | ok( range != NULL, "'6' is valid range"); | 61 | ok(range != NULL, "'6' is valid range"); |
| 64 | ok( range->start == 0, "Start correct"); | 62 | ok(range->start == 0, "Start correct"); |
| 65 | ok( range->start_infinity == false, "Not using negative infinity"); | 63 | ok(range->start_infinity == false, "Not using negative infinity"); |
| 66 | ok( range->end == 6, "End correct"); | 64 | ok(range->end == 6, "End correct"); |
| 67 | ok( range->end_infinity == false, "Not using infinity"); | 65 | ok(range->end_infinity == false, "Not using infinity"); |
| 68 | free(range); | 66 | free(range); |
| 69 | 67 | ||
| 70 | range = parse_range_string("1:12%%"); | 68 | range = parse_range_string("1:12%%"); |
| 71 | ok( range != NULL, "'1:12%%' is valid - percentages are ignored"); | 69 | ok(range != NULL, "'1:12%%' is valid - percentages are ignored"); |
| 72 | ok( range->start == 1, "Start correct"); | 70 | ok(range->start == 1, "Start correct"); |
| 73 | ok( range->start_infinity == false, "Not using negative infinity"); | 71 | ok(range->start_infinity == false, "Not using negative infinity"); |
| 74 | ok( range->end == 12, "End correct"); | 72 | ok(range->end == 12, "End correct"); |
| 75 | ok( range->end_infinity == false, "Not using infinity"); | 73 | ok(range->end_infinity == false, "Not using infinity"); |
| 76 | free(range); | 74 | free(range); |
| 77 | 75 | ||
| 78 | range = parse_range_string("-7:23"); | 76 | range = parse_range_string("-7:23"); |
| 79 | ok( range != NULL, "'-7:23' is valid range"); | 77 | ok(range != NULL, "'-7:23' is valid range"); |
| 80 | ok( range->start == -7, "Start correct"); | 78 | ok(range->start == -7, "Start correct"); |
| 81 | ok( range->start_infinity == false, "Not using negative infinity"); | 79 | ok(range->start_infinity == false, "Not using negative infinity"); |
| 82 | ok( range->end == 23, "End correct"); | 80 | ok(range->end == 23, "End correct"); |
| 83 | ok( range->end_infinity == false, "Not using infinity"); | 81 | ok(range->end_infinity == false, "Not using infinity"); |
| 84 | free(range); | 82 | free(range); |
| 85 | 83 | ||
| 86 | range = parse_range_string(":5.75"); | 84 | range = parse_range_string(":5.75"); |
| 87 | ok( range != NULL, "':5.75' is valid range"); | 85 | ok(range != NULL, "':5.75' is valid range"); |
| 88 | ok( range->start == 0, "Start correct"); | 86 | ok(range->start == 0, "Start correct"); |
| 89 | ok( range->start_infinity == false, "Not using negative infinity"); | 87 | ok(range->start_infinity == false, "Not using negative infinity"); |
| 90 | ok( range->end == 5.75, "End correct"); | 88 | ok(range->end == 5.75, "End correct"); |
| 91 | ok( range->end_infinity == false, "Not using infinity"); | 89 | ok(range->end_infinity == false, "Not using infinity"); |
| 92 | free(range); | 90 | free(range); |
| 93 | 91 | ||
| 94 | range = parse_range_string("~:-95.99"); | 92 | range = parse_range_string("~:-95.99"); |
| 95 | ok( range != NULL, "~:-95.99' is valid range"); | 93 | ok(range != NULL, "~:-95.99' is valid range"); |
| 96 | ok( range->start_infinity == true, "Using negative infinity"); | 94 | ok(range->start_infinity == true, "Using negative infinity"); |
| 97 | ok( range->end == -95.99, "End correct (with rounding errors)"); | 95 | ok(range->end == -95.99, "End correct (with rounding errors)"); |
| 98 | ok( range->end_infinity == false, "Not using infinity"); | 96 | ok(range->end_infinity == false, "Not using infinity"); |
| 99 | free(range); | 97 | free(range); |
| 100 | 98 | ||
| 101 | range = parse_range_string("12345678901234567890:"); | 99 | range = parse_range_string("12345678901234567890:"); |
| 102 | temp = atof("12345678901234567890"); /* Can't just use this because number too large */ | 100 | temp = atof("12345678901234567890"); /* Can't just use this because number too large */ |
| 103 | ok( range != NULL, "'12345678901234567890:' is valid range"); | 101 | ok(range != NULL, "'12345678901234567890:' is valid range"); |
| 104 | ok( range->start == temp, "Start correct"); | 102 | ok(range->start == temp, "Start correct"); |
| 105 | ok( range->start_infinity == false, "Not using negative infinity"); | 103 | ok(range->start_infinity == false, "Not using negative infinity"); |
| 106 | ok( range->end_infinity == true, "Using infinity"); | 104 | ok(range->end_infinity == true, "Using infinity"); |
| 107 | /* Cannot do a "-1" on temp, as it appears to be same value */ | 105 | /* Cannot do a "-1" on temp, as it appears to be same value */ |
| 108 | ok( check_range(temp/1.1, range) == true, "12345678901234567890/1.1 - alert"); | 106 | ok(check_range(temp / 1.1, range) == true, "12345678901234567890/1.1 - alert"); |
| 109 | ok( check_range(temp, range) == false, "12345678901234567890 - no alert"); | 107 | ok(check_range(temp, range) == false, "12345678901234567890 - no alert"); |
| 110 | ok( check_range(temp*2, range) == false, "12345678901234567890*2 - no alert"); | 108 | ok(check_range(temp * 2, range) == false, "12345678901234567890*2 - no alert"); |
| 111 | free(range); | 109 | free(range); |
| 112 | 110 | ||
| 113 | range = parse_range_string("~:0"); | 111 | range = parse_range_string("~:0"); |
| 114 | ok( range != NULL, "'~:0' is valid range"); | 112 | ok(range != NULL, "'~:0' is valid range"); |
| 115 | ok( range->start_infinity == true, "Using negative infinity"); | 113 | ok(range->start_infinity == true, "Using negative infinity"); |
| 116 | ok( range->end == 0, "End correct"); | 114 | ok(range->end == 0, "End correct"); |
| 117 | ok( range->end_infinity == false, "Not using infinity"); | 115 | ok(range->end_infinity == false, "Not using infinity"); |
| 118 | ok( range->alert_on == OUTSIDE, "Will alert on outside of this range"); | 116 | ok(range->alert_on == OUTSIDE, "Will alert on outside of this range"); |
| 119 | ok( check_range(0.5, range) == true, "0.5 - alert"); | 117 | ok(check_range(0.5, range) == true, "0.5 - alert"); |
| 120 | ok( check_range(-10, range) == false, "-10 - no alert"); | 118 | ok(check_range(-10, range) == false, "-10 - no alert"); |
| 121 | ok( check_range(0, range) == false, "0 - no alert"); | 119 | ok(check_range(0, range) == false, "0 - no alert"); |
| 122 | free(range); | 120 | free(range); |
| 123 | 121 | ||
| 124 | range = parse_range_string("@0:657.8210567"); | 122 | range = parse_range_string("@0:657.8210567"); |
| 125 | ok( range != 0, "@0:657.8210567' is a valid range"); | 123 | ok(range != 0, "@0:657.8210567' is a valid range"); |
| 126 | ok( range->start == 0, "Start correct"); | 124 | ok(range->start == 0, "Start correct"); |
| 127 | ok( range->start_infinity == false, "Not using negative infinity"); | 125 | ok(range->start_infinity == false, "Not using negative infinity"); |
| 128 | ok( range->end == 657.8210567, "End correct"); | 126 | ok(range->end == 657.8210567, "End correct"); |
| 129 | ok( range->end_infinity == false, "Not using infinity"); | 127 | ok(range->end_infinity == false, "Not using infinity"); |
| 130 | ok( range->alert_on == INSIDE, "Will alert on inside of this range" ); | 128 | ok(range->alert_on == INSIDE, "Will alert on inside of this range"); |
| 131 | ok( check_range(32.88, range) == true, "32.88 - alert"); | 129 | ok(check_range(32.88, range) == true, "32.88 - alert"); |
| 132 | ok( check_range(-2, range) == false, "-2 - no alert"); | 130 | ok(check_range(-2, range) == false, "-2 - no alert"); |
| 133 | ok( check_range(657.8210567, range) == true, "657.8210567 - alert"); | 131 | ok(check_range(657.8210567, range) == true, "657.8210567 - alert"); |
| 134 | ok( check_range(0, range) == true, "0 - alert"); | 132 | ok(check_range(0, range) == true, "0 - alert"); |
| 135 | free(range); | 133 | free(range); |
| 136 | 134 | ||
| 137 | range = parse_range_string("@1:1"); | 135 | range = parse_range_string("@1:1"); |
| 138 | ok( range != NULL, "'@1:1' is a valid range"); | 136 | ok(range != NULL, "'@1:1' is a valid range"); |
| 139 | ok( range->start == 1, "Start correct"); | 137 | ok(range->start == 1, "Start correct"); |
| 140 | ok( range->start_infinity == false, "Not using negative infinity"); | 138 | ok(range->start_infinity == false, "Not using negative infinity"); |
| 141 | ok( range->end == 1, "End correct"); | 139 | ok(range->end == 1, "End correct"); |
| 142 | ok( range->end_infinity == false, "Not using infinity"); | 140 | ok(range->end_infinity == false, "Not using infinity"); |
| 143 | ok( range->alert_on == INSIDE, "Will alert on inside of this range" ); | 141 | ok(range->alert_on == INSIDE, "Will alert on inside of this range"); |
| 144 | ok( check_range(0.5, range) == false, "0.5 - no alert"); | 142 | ok(check_range(0.5, range) == false, "0.5 - no alert"); |
| 145 | ok( check_range(1, range) == true, "1 - alert"); | 143 | ok(check_range(1, range) == true, "1 - alert"); |
| 146 | ok( check_range(5.2, range) == false, "5.2 - no alert"); | 144 | ok(check_range(5.2, range) == false, "5.2 - no alert"); |
| 147 | free(range); | 145 | free(range); |
| 148 | 146 | ||
| 149 | range = parse_range_string("1:1"); | 147 | range = parse_range_string("1:1"); |
| 150 | ok( range != NULL, "'1:1' is a valid range"); | 148 | ok(range != NULL, "'1:1' is a valid range"); |
| 151 | ok( range->start == 1, "Start correct"); | 149 | ok(range->start == 1, "Start correct"); |
| 152 | ok( range->start_infinity == false, "Not using negative infinity"); | 150 | ok(range->start_infinity == false, "Not using negative infinity"); |
| 153 | ok( range->end == 1, "End correct"); | 151 | ok(range->end == 1, "End correct"); |
| 154 | ok( range->end_infinity == false, "Not using infinity"); | 152 | ok(range->end_infinity == false, "Not using infinity"); |
| 155 | ok( check_range(0.5, range) == true, "0.5 - alert"); | 153 | ok(check_range(0.5, range) == true, "0.5 - alert"); |
| 156 | ok( check_range(1, range) == false, "1 - no alert"); | 154 | ok(check_range(1, range) == false, "1 - no alert"); |
| 157 | ok( check_range(5.2, range) == true, "5.2 - alert"); | 155 | ok(check_range(5.2, range) == true, "5.2 - alert"); |
| 158 | free(range); | 156 | free(range); |
| 159 | 157 | ||
| 160 | range = parse_range_string("2:1"); | 158 | range = parse_range_string("2:1"); |
| 161 | ok( range == NULL, "'2:1' rejected"); | 159 | ok(range == NULL, "'2:1' rejected"); |
| 162 | 160 | ||
| 163 | rc = _set_thresholds(&thresholds, NULL, NULL); | 161 | rc = _set_thresholds(&thresholds, NULL, NULL); |
| 164 | ok( rc == 0, "Thresholds (NULL, NULL) set"); | 162 | ok(rc == 0, "Thresholds (NULL, NULL) set"); |
| 165 | ok( thresholds->warning == NULL, "Warning not set"); | 163 | ok(thresholds->warning == NULL, "Warning not set"); |
| 166 | ok( thresholds->critical == NULL, "Critical not set"); | 164 | ok(thresholds->critical == NULL, "Critical not set"); |
| 167 | 165 | ||
| 168 | rc = _set_thresholds(&thresholds, NULL, "80"); | 166 | rc = _set_thresholds(&thresholds, NULL, "80"); |
| 169 | ok( rc == 0, "Thresholds (NULL, '80') set"); | 167 | ok(rc == 0, "Thresholds (NULL, '80') set"); |
| 170 | ok( thresholds->warning == NULL, "Warning not set"); | 168 | ok(thresholds->warning == NULL, "Warning not set"); |
| 171 | ok( thresholds->critical->end == 80, "Critical set correctly"); | 169 | ok(thresholds->critical->end == 80, "Critical set correctly"); |
| 172 | 170 | ||
| 173 | rc = _set_thresholds(&thresholds, "5:33", NULL); | 171 | rc = _set_thresholds(&thresholds, "5:33", NULL); |
| 174 | ok( rc == 0, "Thresholds ('5:33', NULL) set"); | 172 | ok(rc == 0, "Thresholds ('5:33', NULL) set"); |
| 175 | ok( thresholds->warning->start == 5, "Warning start set"); | 173 | ok(thresholds->warning->start == 5, "Warning start set"); |
| 176 | ok( thresholds->warning->end == 33, "Warning end set"); | 174 | ok(thresholds->warning->end == 33, "Warning end set"); |
| 177 | ok( thresholds->critical == NULL, "Critical not set"); | 175 | ok(thresholds->critical == NULL, "Critical not set"); |
| 178 | 176 | ||
| 179 | rc = _set_thresholds(&thresholds, "30", "60"); | 177 | rc = _set_thresholds(&thresholds, "30", "60"); |
| 180 | ok( rc == 0, "Thresholds ('30', '60') set"); | 178 | ok(rc == 0, "Thresholds ('30', '60') set"); |
| 181 | ok( thresholds->warning->end == 30, "Warning set correctly"); | 179 | ok(thresholds->warning->end == 30, "Warning set correctly"); |
| 182 | ok( thresholds->critical->end == 60, "Critical set correctly"); | 180 | ok(thresholds->critical->end == 60, "Critical set correctly"); |
| 183 | ok( get_status(15.3, thresholds) == STATE_OK, "15.3 - ok"); | 181 | ok(get_status(15.3, thresholds) == STATE_OK, "15.3 - ok"); |
| 184 | ok( get_status(30.0001, thresholds) == STATE_WARNING, "30.0001 - warning"); | 182 | ok(get_status(30.0001, thresholds) == STATE_WARNING, "30.0001 - warning"); |
| 185 | ok( get_status(69, thresholds) == STATE_CRITICAL, "69 - critical"); | 183 | ok(get_status(69, thresholds) == STATE_CRITICAL, "69 - critical"); |
| 186 | 184 | ||
| 187 | rc = _set_thresholds(&thresholds, "-10:-2", "-30:20"); | 185 | rc = _set_thresholds(&thresholds, "-10:-2", "-30:20"); |
| 188 | ok( rc == 0, "Thresholds ('-30:20', '-10:-2') set"); | 186 | ok(rc == 0, "Thresholds ('-30:20', '-10:-2') set"); |
| 189 | ok( thresholds->warning->start == -10, "Warning start set correctly"); | 187 | ok(thresholds->warning->start == -10, "Warning start set correctly"); |
| 190 | ok( thresholds->warning->end == -2, "Warning end set correctly"); | 188 | ok(thresholds->warning->end == -2, "Warning end set correctly"); |
| 191 | ok( thresholds->critical->start == -30, "Critical start set correctly"); | 189 | ok(thresholds->critical->start == -30, "Critical start set correctly"); |
| 192 | ok( thresholds->critical->end == 20, "Critical end set correctly"); | 190 | ok(thresholds->critical->end == 20, "Critical end set correctly"); |
| 193 | ok( get_status(-31, thresholds) == STATE_CRITICAL, "-31 - critical"); | 191 | ok(get_status(-31, thresholds) == STATE_CRITICAL, "-31 - critical"); |
| 194 | ok( get_status(-29, thresholds) == STATE_WARNING, "-29 - warning"); | 192 | ok(get_status(-29, thresholds) == STATE_WARNING, "-29 - warning"); |
| 195 | ok( get_status(-11, thresholds) == STATE_WARNING, "-11 - warning"); | 193 | ok(get_status(-11, thresholds) == STATE_WARNING, "-11 - warning"); |
| 196 | ok( get_status(-10, thresholds) == STATE_OK, "-10 - ok"); | 194 | ok(get_status(-10, thresholds) == STATE_OK, "-10 - ok"); |
| 197 | ok( get_status(-2, thresholds) == STATE_OK, "-2 - ok"); | 195 | ok(get_status(-2, thresholds) == STATE_OK, "-2 - ok"); |
| 198 | ok( get_status(-1, thresholds) == STATE_WARNING, "-1 - warning"); | 196 | ok(get_status(-1, thresholds) == STATE_WARNING, "-1 - warning"); |
| 199 | ok( get_status(19, thresholds) == STATE_WARNING, "19 - warning"); | 197 | ok(get_status(19, thresholds) == STATE_WARNING, "19 - warning"); |
| 200 | ok( get_status(21, thresholds) == STATE_CRITICAL, "21 - critical"); | 198 | ok(get_status(21, thresholds) == STATE_CRITICAL, "21 - critical"); |
| 201 | 199 | ||
| 202 | char *test; | 200 | char *test; |
| 203 | test = np_escaped_string("bob\\n"); | 201 | test = np_escaped_string("bob\\n"); |
| 204 | ok( strcmp(test, "bob\n") == 0, "bob\\n ok"); | 202 | ok(strcmp(test, "bob\n") == 0, "bob\\n ok"); |
| 205 | free(test); | 203 | free(test); |
| 206 | 204 | ||
| 207 | test = np_escaped_string("rhuba\\rb"); | 205 | test = np_escaped_string("rhuba\\rb"); |
| 208 | ok( strcmp(test, "rhuba\rb") == 0, "rhuba\\rb okay"); | 206 | ok(strcmp(test, "rhuba\rb") == 0, "rhuba\\rb okay"); |
| 209 | free(test); | 207 | free(test); |
| 210 | 208 | ||
| 211 | test = np_escaped_string("ba\\nge\\r"); | 209 | test = np_escaped_string("ba\\nge\\r"); |
| 212 | ok( strcmp(test, "ba\nge\r") == 0, "ba\\nge\\r okay"); | 210 | ok(strcmp(test, "ba\nge\r") == 0, "ba\\nge\\r okay"); |
| 213 | free(test); | 211 | free(test); |
| 214 | 212 | ||
| 215 | test = np_escaped_string("\\rabbi\\t"); | 213 | test = np_escaped_string("\\rabbi\\t"); |
| 216 | ok( strcmp(test, "\rabbi\t") == 0, "\\rabbi\\t okay"); | 214 | ok(strcmp(test, "\rabbi\t") == 0, "\\rabbi\\t okay"); |
| 217 | free(test); | 215 | free(test); |
| 218 | 216 | ||
| 219 | test = np_escaped_string("and\\\\or"); | 217 | test = np_escaped_string("and\\\\or"); |
| 220 | ok( strcmp(test, "and\\or") == 0, "and\\\\or okay"); | 218 | ok(strcmp(test, "and\\or") == 0, "and\\\\or okay"); |
| 221 | free(test); | 219 | free(test); |
| 222 | 220 | ||
| 223 | test = np_escaped_string("bo\\gus"); | 221 | test = np_escaped_string("bo\\gus"); |
| 224 | ok( strcmp(test, "bogus") == 0, "bo\\gus okay"); | 222 | ok(strcmp(test, "bogus") == 0, "bo\\gus okay"); |
| 225 | free(test); | 223 | free(test); |
| 226 | 224 | ||
| 227 | test = np_escaped_string("everything"); | 225 | test = np_escaped_string("everything"); |
| 228 | ok( strcmp(test, "everything") == 0, "everything okay"); | 226 | ok(strcmp(test, "everything") == 0, "everything okay"); |
| 229 | 227 | ||
| 230 | /* np_extract_ntpvar tests (23) */ | 228 | /* np_extract_ntpvar tests (23) */ |
| 231 | test=np_extract_ntpvar("foo=bar, bar=foo, foobar=barfoo\n", "foo"); | 229 | test = np_extract_ntpvar("foo=bar, bar=foo, foobar=barfoo\n", "foo"); |
| 232 | ok(test && !strcmp(test, "bar"), "1st test as expected"); | 230 | ok(test && !strcmp(test, "bar"), "1st test as expected"); |
| 233 | free(test); | 231 | free(test); |
| 234 | 232 | ||
| 235 | test=np_extract_ntpvar("foo=bar,bar=foo,foobar=barfoo\n", "bar"); | 233 | test = np_extract_ntpvar("foo=bar,bar=foo,foobar=barfoo\n", "bar"); |
| 236 | ok(test && !strcmp(test, "foo"), "2nd test as expected"); | 234 | ok(test && !strcmp(test, "foo"), "2nd test as expected"); |
| 237 | free(test); | 235 | free(test); |
| 238 | 236 | ||
| 239 | test=np_extract_ntpvar("foo=bar, bar=foo, foobar=barfoo\n", "foobar"); | 237 | test = np_extract_ntpvar("foo=bar, bar=foo, foobar=barfoo\n", "foobar"); |
| 240 | ok(test && !strcmp(test, "barfoo"), "3rd test as expected"); | 238 | ok(test && !strcmp(test, "barfoo"), "3rd test as expected"); |
| 241 | free(test); | 239 | free(test); |
| 242 | 240 | ||
| 243 | test=np_extract_ntpvar("foo=bar\n", "foo"); | 241 | test = np_extract_ntpvar("foo=bar\n", "foo"); |
| 244 | ok(test && !strcmp(test, "bar"), "Single test as expected"); | 242 | ok(test && !strcmp(test, "bar"), "Single test as expected"); |
| 245 | free(test); | 243 | free(test); |
| 246 | 244 | ||
| 247 | test=np_extract_ntpvar("foo=bar, bar=foo, foobar=barfooi\n", "abcd"); | 245 | test = np_extract_ntpvar("foo=bar, bar=foo, foobar=barfooi\n", "abcd"); |
| 248 | ok(!test, "Key not found 1"); | 246 | ok(!test, "Key not found 1"); |
| 249 | 247 | ||
| 250 | test=np_extract_ntpvar("foo=bar\n", "abcd"); | 248 | test = np_extract_ntpvar("foo=bar\n", "abcd"); |
| 251 | ok(!test, "Key not found 2"); | 249 | ok(!test, "Key not found 2"); |
| 252 | 250 | ||
| 253 | test=np_extract_ntpvar("foo=bar=foobar", "foo"); | 251 | test = np_extract_ntpvar("foo=bar=foobar", "foo"); |
| 254 | ok(test && !strcmp(test, "bar=foobar"), "Strange string 1"); | 252 | ok(test && !strcmp(test, "bar=foobar"), "Strange string 1"); |
| 255 | free(test); | 253 | free(test); |
| 256 | 254 | ||
| 257 | test=np_extract_ntpvar("foo", "foo"); | 255 | test = np_extract_ntpvar("foo", "foo"); |
| 258 | ok(!test, "Malformed string 1"); | 256 | ok(!test, "Malformed string 1"); |
| 259 | 257 | ||
| 260 | test=np_extract_ntpvar("foo,", "foo"); | 258 | test = np_extract_ntpvar("foo,", "foo"); |
| 261 | ok(!test, "Malformed string 2"); | 259 | ok(!test, "Malformed string 2"); |
| 262 | 260 | ||
| 263 | test=np_extract_ntpvar("foo=", "foo"); | 261 | test = np_extract_ntpvar("foo=", "foo"); |
| 264 | ok(!test, "Malformed string 3"); | 262 | ok(!test, "Malformed string 3"); |
| 265 | 263 | ||
| 266 | test=np_extract_ntpvar("foo=,bar=foo", "foo"); | 264 | test = np_extract_ntpvar("foo=,bar=foo", "foo"); |
| 267 | ok(!test, "Malformed string 4"); | 265 | ok(!test, "Malformed string 4"); |
| 268 | 266 | ||
| 269 | test=np_extract_ntpvar(",foo", "foo"); | 267 | test = np_extract_ntpvar(",foo", "foo"); |
| 270 | ok(!test, "Malformed string 5"); | 268 | ok(!test, "Malformed string 5"); |
| 271 | 269 | ||
| 272 | test=np_extract_ntpvar("=foo", "foo"); | 270 | test = np_extract_ntpvar("=foo", "foo"); |
| 273 | ok(!test, "Malformed string 6"); | 271 | ok(!test, "Malformed string 6"); |
| 274 | 272 | ||
| 275 | test=np_extract_ntpvar("=foo,", "foo"); | 273 | test = np_extract_ntpvar("=foo,", "foo"); |
| 276 | ok(!test, "Malformed string 7"); | 274 | ok(!test, "Malformed string 7"); |
| 277 | 275 | ||
| 278 | test=np_extract_ntpvar(",,,", "foo"); | 276 | test = np_extract_ntpvar(",,,", "foo"); |
| 279 | ok(!test, "Malformed string 8"); | 277 | ok(!test, "Malformed string 8"); |
| 280 | 278 | ||
| 281 | test=np_extract_ntpvar("===", "foo"); | 279 | test = np_extract_ntpvar("===", "foo"); |
| 282 | ok(!test, "Malformed string 9"); | 280 | ok(!test, "Malformed string 9"); |
| 283 | 281 | ||
| 284 | test=np_extract_ntpvar(",=,=,", "foo"); | 282 | test = np_extract_ntpvar(",=,=,", "foo"); |
| 285 | ok(!test, "Malformed string 10"); | 283 | ok(!test, "Malformed string 10"); |
| 286 | 284 | ||
| 287 | test=np_extract_ntpvar("=,=,=", "foo"); | 285 | test = np_extract_ntpvar("=,=,=", "foo"); |
| 288 | ok(!test, "Malformed string 11"); | 286 | ok(!test, "Malformed string 11"); |
| 289 | 287 | ||
| 290 | test=np_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "foo"); | 288 | test = np_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "foo"); |
| 291 | ok(test && !strcmp(test, "bar"), "Random spaces and newlines 1"); | 289 | ok(test && !strcmp(test, "bar"), "Random spaces and newlines 1"); |
| 292 | free(test); | 290 | free(test); |
| 293 | 291 | ||
| 294 | test=np_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "bar"); | 292 | test = np_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "bar"); |
| 295 | ok(test && !strcmp(test, "foo"), "Random spaces and newlines 2"); | 293 | ok(test && !strcmp(test, "foo"), "Random spaces and newlines 2"); |
| 296 | free(test); | 294 | free(test); |
| 297 | 295 | ||
| 298 | test=np_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "foobar"); | 296 | test = np_extract_ntpvar(" foo=bar ,\n bar=foo\n , foobar=barfoo \n ", "foobar"); |
| 299 | ok(test && !strcmp(test, "barfoo"), "Random spaces and newlines 3"); | 297 | ok(test && !strcmp(test, "barfoo"), "Random spaces and newlines 3"); |
| 300 | free(test); | 298 | free(test); |
| 301 | 299 | ||
| 302 | test=np_extract_ntpvar(" foo=bar ,\n bar\n \n= \n foo\n , foobar=barfoo \n ", "bar"); | 300 | test = np_extract_ntpvar(" foo=bar ,\n bar\n \n= \n foo\n , foobar=barfoo \n ", "bar"); |
| 303 | ok(test && !strcmp(test, "foo"), "Random spaces and newlines 4"); | 301 | ok(test && !strcmp(test, "foo"), "Random spaces and newlines 4"); |
| 304 | free(test); | 302 | free(test); |
| 305 | 303 | ||
| 306 | test=np_extract_ntpvar("", "foo"); | 304 | test = np_extract_ntpvar("", "foo"); |
| 307 | ok(!test, "Empty string return NULL"); | 305 | ok(!test, "Empty string return NULL"); |
| 308 | 306 | ||
| 309 | |||
| 310 | /* This is the result of running ./test_utils */ | 307 | /* This is the result of running ./test_utils */ |
| 311 | temp_string = (char *) _np_state_generate_key(); | 308 | temp_string = (char *)_np_state_generate_key(); |
| 312 | ok(!strcmp(temp_string, "e2d17f995fd4c020411b85e3e3d0ff7306d4147e"), "Got hash with exe and no parameters" ) || | 309 | ok(!strcmp(temp_string, "e2d17f995fd4c020411b85e3e3d0ff7306d4147e"), "Got hash with exe and no parameters") || |
| 313 | diag( "You are probably running in wrong directory. Must run as ./test_utils" ); | 310 | diag("You are probably running in wrong directory. Must run as ./test_utils"); |
| 314 | |||
| 315 | 311 | ||
| 316 | this_monitoring_plugin->argc=4; | 312 | this_monitoring_plugin->argc = 4; |
| 317 | this_monitoring_plugin->argv[0] = "./test_utils"; | 313 | this_monitoring_plugin->argv[0] = "./test_utils"; |
| 318 | this_monitoring_plugin->argv[1] = "here"; | 314 | this_monitoring_plugin->argv[1] = "here"; |
| 319 | this_monitoring_plugin->argv[2] = "--and"; | 315 | this_monitoring_plugin->argv[2] = "--and"; |
| 320 | this_monitoring_plugin->argv[3] = "now"; | 316 | this_monitoring_plugin->argv[3] = "now"; |
| 321 | temp_string = (char *) _np_state_generate_key(); | 317 | temp_string = (char *)_np_state_generate_key(); |
| 322 | ok(!strcmp(temp_string, "bd72da9f78ff1419fad921ea5e43ce56508aef6c"), "Got based on expected argv" ); | 318 | ok(!strcmp(temp_string, "bd72da9f78ff1419fad921ea5e43ce56508aef6c"), "Got based on expected argv"); |
| 323 | 319 | ||
| 324 | unsetenv("MP_STATE_PATH"); | 320 | unsetenv("MP_STATE_PATH"); |
| 325 | temp_string = (char *) _np_state_calculate_location_prefix(); | 321 | temp_string = (char *)_np_state_calculate_location_prefix(); |
| 326 | ok(!strcmp(temp_string, NP_STATE_DIR_PREFIX), "Got default directory" ); | 322 | ok(!strcmp(temp_string, NP_STATE_DIR_PREFIX), "Got default directory"); |
| 327 | 323 | ||
| 328 | setenv("MP_STATE_PATH", "", 1); | 324 | setenv("MP_STATE_PATH", "", 1); |
| 329 | temp_string = (char *) _np_state_calculate_location_prefix(); | 325 | temp_string = (char *)_np_state_calculate_location_prefix(); |
| 330 | ok(!strcmp(temp_string, NP_STATE_DIR_PREFIX), "Got default directory even with empty string" ); | 326 | ok(!strcmp(temp_string, NP_STATE_DIR_PREFIX), "Got default directory even with empty string"); |
| 331 | 327 | ||
| 332 | setenv("MP_STATE_PATH", "/usr/local/nagios/var", 1); | 328 | setenv("MP_STATE_PATH", "/usr/local/nagios/var", 1); |
| 333 | temp_string = (char *) _np_state_calculate_location_prefix(); | 329 | temp_string = (char *)_np_state_calculate_location_prefix(); |
| 334 | ok(!strcmp(temp_string, "/usr/local/nagios/var"), "Got default directory" ); | 330 | ok(!strcmp(temp_string, "/usr/local/nagios/var"), "Got default directory"); |
| 335 | |||
| 336 | 331 | ||
| 332 | ok(temp_state_key == NULL, "temp_state_key initially empty"); | ||
| 337 | 333 | ||
| 338 | ok(temp_state_key==NULL, "temp_state_key initially empty"); | 334 | this_monitoring_plugin->argc = 1; |
| 339 | |||
| 340 | this_monitoring_plugin->argc=1; | ||
| 341 | this_monitoring_plugin->argv[0] = "./test_utils"; | 335 | this_monitoring_plugin->argv[0] = "./test_utils"; |
| 342 | np_enable_state(NULL, 51); | 336 | np_enable_state(NULL, 51); |
| 343 | temp_state_key = this_monitoring_plugin->state; | 337 | temp_state_key = this_monitoring_plugin->state; |
| 344 | ok( !strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name" ); | 338 | ok(!strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name"); |
| 345 | ok( !strcmp(temp_state_key->name, "e2d17f995fd4c020411b85e3e3d0ff7306d4147e"), "Got generated filename" ); | 339 | ok(!strcmp(temp_state_key->name, "e2d17f995fd4c020411b85e3e3d0ff7306d4147e"), "Got generated filename"); |
| 346 | |||
| 347 | 340 | ||
| 348 | np_enable_state("allowedchars_in_keyname", 77); | 341 | np_enable_state("allowedchars_in_keyname", 77); |
| 349 | temp_state_key = this_monitoring_plugin->state; | 342 | temp_state_key = this_monitoring_plugin->state; |
| 350 | sprintf(state_path, "/usr/local/nagios/var/%lu/check_test/allowedchars_in_keyname", (unsigned long)geteuid()); | 343 | sprintf(state_path, "/usr/local/nagios/var/%lu/check_test/allowedchars_in_keyname", (unsigned long)geteuid()); |
| 351 | ok( !strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name" ); | 344 | ok(!strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name"); |
| 352 | ok( !strcmp(temp_state_key->name, "allowedchars_in_keyname"), "Got key name with valid chars" ); | 345 | ok(!strcmp(temp_state_key->name, "allowedchars_in_keyname"), "Got key name with valid chars"); |
| 353 | ok( !strcmp(temp_state_key->_filename, state_path), "Got internal filename" ); | 346 | ok(!strcmp(temp_state_key->_filename, state_path), "Got internal filename"); |
| 354 | |||
| 355 | 347 | ||
| 356 | /* Don't do this test just yet. Will die */ | 348 | /* Don't do this test just yet. Will die */ |
| 357 | /* | 349 | /* |
| @@ -363,73 +355,65 @@ main (int argc, char **argv) | |||
| 363 | np_enable_state("funnykeyname", 54); | 355 | np_enable_state("funnykeyname", 54); |
| 364 | temp_state_key = this_monitoring_plugin->state; | 356 | temp_state_key = this_monitoring_plugin->state; |
| 365 | sprintf(state_path, "/usr/local/nagios/var/%lu/check_test/funnykeyname", (unsigned long)geteuid()); | 357 | sprintf(state_path, "/usr/local/nagios/var/%lu/check_test/funnykeyname", (unsigned long)geteuid()); |
| 366 | ok( !strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name" ); | 358 | ok(!strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name"); |
| 367 | ok( !strcmp(temp_state_key->name, "funnykeyname"), "Got key name" ); | 359 | ok(!strcmp(temp_state_key->name, "funnykeyname"), "Got key name"); |
| 368 | 360 | ||
| 369 | 361 | ok(!strcmp(temp_state_key->_filename, state_path), "Got internal filename"); | |
| 370 | 362 | ok(temp_state_key->data_version == 54, "Version set"); | |
| 371 | ok( !strcmp(temp_state_key->_filename, state_path), "Got internal filename" ); | ||
| 372 | ok( temp_state_key->data_version==54, "Version set" ); | ||
| 373 | 363 | ||
| 374 | temp_state_data = np_state_read(); | 364 | temp_state_data = np_state_read(); |
| 375 | ok( temp_state_data==NULL, "Got no state data as file does not exist" ); | 365 | ok(temp_state_data == NULL, "Got no state data as file does not exist"); |
| 376 | |||
| 377 | 366 | ||
| 378 | /* | 367 | /* |
| 379 | temp_fp = fopen("var/statefile", "r"); | 368 | temp_fp = fopen("var/statefile", "r"); |
| 380 | if (temp_fp==NULL) | 369 | if (temp_fp==NULL) |
| 381 | printf("Error opening. errno=%d\n", errno); | 370 | printf("Error opening. errno=%d\n", errno); |
| 382 | printf("temp_fp=%s\n", temp_fp); | 371 | printf("temp_fp=%s\n", temp_fp); |
| 383 | ok( _np_state_read_file(temp_fp) == true, "Can read state file" ); | 372 | ok( _np_state_read_file(temp_fp) == true, "Can read state file" ); |
| 384 | fclose(temp_fp); | 373 | fclose(temp_fp); |
| 385 | */ | 374 | */ |
| 386 | 375 | ||
| 387 | temp_state_key->_filename="var/statefile"; | 376 | temp_state_key->_filename = "var/statefile"; |
| 388 | temp_state_data = np_state_read(); | 377 | temp_state_data = np_state_read(); |
| 389 | ok( this_monitoring_plugin->state->state_data!=NULL, "Got state data now" ) || diag("Are you running in right directory? Will get coredump next if not"); | 378 | ok(this_monitoring_plugin->state->state_data != NULL, "Got state data now") || |
| 390 | ok( this_monitoring_plugin->state->state_data->time==1234567890, "Got time" ); | 379 | diag("Are you running in right directory? Will get coredump next if not"); |
| 391 | ok( !strcmp((char *)this_monitoring_plugin->state->state_data->data, "String to read"), "Data as expected" ); | 380 | ok(this_monitoring_plugin->state->state_data->time == 1234567890, "Got time"); |
| 381 | ok(!strcmp((char *)this_monitoring_plugin->state->state_data->data, "String to read"), "Data as expected"); | ||
| 392 | 382 | ||
| 393 | temp_state_key->data_version=53; | 383 | temp_state_key->data_version = 53; |
| 394 | temp_state_data = np_state_read(); | 384 | temp_state_data = np_state_read(); |
| 395 | ok( temp_state_data==NULL, "Older data version gives NULL" ); | 385 | ok(temp_state_data == NULL, "Older data version gives NULL"); |
| 396 | temp_state_key->data_version=54; | 386 | temp_state_key->data_version = 54; |
| 397 | 387 | ||
| 398 | temp_state_key->_filename="var/nonexistent"; | 388 | temp_state_key->_filename = "var/nonexistent"; |
| 399 | temp_state_data = np_state_read(); | 389 | temp_state_data = np_state_read(); |
| 400 | ok( temp_state_data==NULL, "Missing file gives NULL" ); | 390 | ok(temp_state_data == NULL, "Missing file gives NULL"); |
| 401 | ok( this_monitoring_plugin->state->state_data==NULL, "No state information" ); | 391 | ok(this_monitoring_plugin->state->state_data == NULL, "No state information"); |
| 402 | 392 | ||
| 403 | temp_state_key->_filename="var/oldformat"; | 393 | temp_state_key->_filename = "var/oldformat"; |
| 404 | temp_state_data = np_state_read(); | 394 | temp_state_data = np_state_read(); |
| 405 | ok( temp_state_data==NULL, "Old file format gives NULL" ); | 395 | ok(temp_state_data == NULL, "Old file format gives NULL"); |
| 406 | 396 | ||
| 407 | temp_state_key->_filename="var/baddate"; | 397 | temp_state_key->_filename = "var/baddate"; |
| 408 | temp_state_data = np_state_read(); | 398 | temp_state_data = np_state_read(); |
| 409 | ok( temp_state_data==NULL, "Bad date gives NULL" ); | 399 | ok(temp_state_data == NULL, "Bad date gives NULL"); |
| 410 | 400 | ||
| 411 | temp_state_key->_filename="var/missingdataline"; | 401 | temp_state_key->_filename = "var/missingdataline"; |
| 412 | temp_state_data = np_state_read(); | 402 | temp_state_data = np_state_read(); |
| 413 | ok( temp_state_data==NULL, "Missing data line gives NULL" ); | 403 | ok(temp_state_data == NULL, "Missing data line gives NULL"); |
| 414 | |||
| 415 | |||
| 416 | |||
| 417 | 404 | ||
| 418 | unlink("var/generated"); | 405 | unlink("var/generated"); |
| 419 | temp_state_key->_filename="var/generated"; | 406 | temp_state_key->_filename = "var/generated"; |
| 420 | current_time=1234567890; | 407 | current_time = 1234567890; |
| 421 | np_state_write_string(current_time, "String to read"); | 408 | np_state_write_string(current_time, "String to read"); |
| 422 | ok(system("cmp var/generated var/statefile")==0, "Generated file same as expected"); | 409 | ok(system("cmp var/generated var/statefile") == 0, "Generated file same as expected"); |
| 423 | |||
| 424 | |||
| 425 | |||
| 426 | 410 | ||
| 427 | unlink("var/generated_directory/statefile"); | 411 | unlink("var/generated_directory/statefile"); |
| 428 | unlink("var/generated_directory"); | 412 | unlink("var/generated_directory"); |
| 429 | temp_state_key->_filename="var/generated_directory/statefile"; | 413 | temp_state_key->_filename = "var/generated_directory/statefile"; |
| 430 | current_time=1234567890; | 414 | current_time = 1234567890; |
| 431 | np_state_write_string(current_time, "String to read"); | 415 | np_state_write_string(current_time, "String to read"); |
| 432 | ok(system("cmp var/generated_directory/statefile var/statefile")==0, "Have created directory"); | 416 | ok(system("cmp var/generated_directory/statefile var/statefile") == 0, "Have created directory"); |
| 433 | 417 | ||
| 434 | /* This test to check cannot write to dir - can't automate yet */ | 418 | /* This test to check cannot write to dir - can't automate yet */ |
| 435 | /* | 419 | /* |
| @@ -438,15 +422,13 @@ main (int argc, char **argv) | |||
| 438 | np_state_write_string(current_time, "String to read"); | 422 | np_state_write_string(current_time, "String to read"); |
| 439 | */ | 423 | */ |
| 440 | 424 | ||
| 441 | 425 | temp_state_key->_filename = "var/generated"; | |
| 442 | temp_state_key->_filename="var/generated"; | ||
| 443 | time(¤t_time); | 426 | time(¤t_time); |
| 444 | np_state_write_string(0, "String to read"); | 427 | np_state_write_string(0, "String to read"); |
| 445 | temp_state_data = np_state_read(); | 428 | temp_state_data = np_state_read(); |
| 446 | /* Check time is set to current_time */ | 429 | /* Check time is set to current_time */ |
| 447 | ok(system("cmp var/generated var/statefile > /dev/null")!=0, "Generated file should be different this time"); | 430 | ok(system("cmp var/generated var/statefile > /dev/null") != 0, "Generated file should be different this time"); |
| 448 | ok(this_monitoring_plugin->state->state_data->time-current_time<=1, "Has time generated from current time"); | 431 | ok(this_monitoring_plugin->state->state_data->time - current_time <= 1, "Has time generated from current time"); |
| 449 | |||
| 450 | 432 | ||
| 451 | /* Don't know how to automatically test this. Need to be able to redefine die and catch the error */ | 433 | /* Don't know how to automatically test this. Need to be able to redefine die and catch the error */ |
| 452 | /* | 434 | /* |
| @@ -454,23 +436,16 @@ main (int argc, char **argv) | |||
| 454 | np_state_write_string(0, "Bad file"); | 436 | np_state_write_string(0, "Bad file"); |
| 455 | */ | 437 | */ |
| 456 | 438 | ||
| 457 | |||
| 458 | np_cleanup(); | 439 | np_cleanup(); |
| 459 | 440 | ||
| 460 | ok(this_monitoring_plugin==NULL, "Free'd this_monitoring_plugin"); | 441 | ok(this_monitoring_plugin == NULL, "Free'd this_monitoring_plugin"); |
| 461 | 442 | ||
| 462 | ok(mp_suid() == false, "Test aren't suid"); | 443 | ok(mp_suid() == false, "Test aren't suid"); |
| 463 | 444 | ||
| 464 | /* base states with random case */ | 445 | /* base states with random case */ |
| 465 | char *states[] = { | 446 | char *states[] = {"Ok", "wArnINg", "cRiTIcaL", "UnKNoWN", NULL}; |
| 466 | "Ok", | 447 | |
| 467 | "wArnINg", | 448 | for (i = 0; states[i] != NULL; i++) { |
| 468 | "cRiTIcaL", | ||
| 469 | "UnKNoWN", | ||
| 470 | NULL | ||
| 471 | }; | ||
| 472 | |||
| 473 | for (i=0; states[i]!=NULL; i++) { | ||
| 474 | /* out of the random case states, create the lower and upper versions + numeric string one */ | 449 | /* out of the random case states, create the lower and upper versions + numeric string one */ |
| 475 | char *statelower = strdup(states[i]); | 450 | char *statelower = strdup(states[i]); |
| 476 | char *stateupper = strdup(states[i]); | 451 | char *stateupper = strdup(states[i]); |
| @@ -488,23 +463,23 @@ main (int argc, char **argv) | |||
| 488 | char testname[64] = "Translate state string: "; | 463 | char testname[64] = "Translate state string: "; |
| 489 | int tlen = strlen(testname); | 464 | int tlen = strlen(testname); |
| 490 | 465 | ||
| 491 | strcpy(testname+tlen, states[i]); | 466 | strcpy(testname + tlen, states[i]); |
| 492 | ok(i==mp_translate_state(states[i]), testname); | 467 | ok(i == mp_translate_state(states[i]), testname); |
| 493 | 468 | ||
| 494 | strcpy(testname+tlen, statelower); | 469 | strcpy(testname + tlen, statelower); |
| 495 | ok(i==mp_translate_state(statelower), testname); | 470 | ok(i == mp_translate_state(statelower), testname); |
| 496 | 471 | ||
| 497 | strcpy(testname+tlen, stateupper); | 472 | strcpy(testname + tlen, stateupper); |
| 498 | ok(i==mp_translate_state(stateupper), testname); | 473 | ok(i == mp_translate_state(stateupper), testname); |
| 499 | 474 | ||
| 500 | strcpy(testname+tlen, statenum); | 475 | strcpy(testname + tlen, statenum); |
| 501 | ok(i==mp_translate_state(statenum), testname); | 476 | ok(i == mp_translate_state(statenum), testname); |
| 502 | } | 477 | } |
| 503 | ok(ERROR==mp_translate_state("warningfewgw"), "Translate state string with garbage"); | 478 | ok(ERROR == mp_translate_state("warningfewgw"), "Translate state string with garbage"); |
| 504 | ok(ERROR==mp_translate_state("00"), "Translate state string: bad numeric string 1"); | 479 | ok(ERROR == mp_translate_state("00"), "Translate state string: bad numeric string 1"); |
| 505 | ok(ERROR==mp_translate_state("01"), "Translate state string: bad numeric string 2"); | 480 | ok(ERROR == mp_translate_state("01"), "Translate state string: bad numeric string 2"); |
| 506 | ok(ERROR==mp_translate_state("10"), "Translate state string: bad numeric string 3"); | 481 | ok(ERROR == mp_translate_state("10"), "Translate state string: bad numeric string 3"); |
| 507 | ok(ERROR==mp_translate_state(""), "Translate state string: empty string"); | 482 | ok(ERROR == mp_translate_state(""), "Translate state string: empty string"); |
| 508 | 483 | ||
| 509 | return exit_status(); | 484 | return exit_status(); |
| 510 | } | 485 | } |
