diff options
author | Ton Voon <ton.voon@opsera.com> | 2010-06-18 17:34:24 +0100 |
---|---|---|
committer | Ton Voon <ton.voon@opsera.com> | 2010-06-18 17:34:24 +0100 |
commit | f58aa8e66bbb4ecf23cf6add7efc574abb733d3a (patch) | |
tree | b68d5933921da5c462ec83e78b3b3589f54b5cd1 /lib/tests | |
parent | 68eb836e527bdead1eea7fc281c95c86eab3164d (diff) | |
download | monitoring-plugins-f58aa8e66bbb4ecf23cf6add7efc574abb733d3a.tar.gz |
Implemented writes to state file
Diffstat (limited to 'lib/tests')
-rw-r--r-- | lib/tests/test_utils.c | 64 |
1 files changed, 58 insertions, 6 deletions
diff --git a/lib/tests/test_utils.c b/lib/tests/test_utils.c index d7cdc336..6e04bfc7 100644 --- a/lib/tests/test_utils.c +++ b/lib/tests/test_utils.c | |||
@@ -21,6 +21,9 @@ | |||
21 | 21 | ||
22 | #include "tap.h" | 22 | #include "tap.h" |
23 | 23 | ||
24 | #include <sys/types.h> | ||
25 | #include <sys/stat.h> | ||
26 | |||
24 | int | 27 | int |
25 | main (int argc, char **argv) | 28 | main (int argc, char **argv) |
26 | { | 29 | { |
@@ -36,7 +39,7 @@ main (int argc, char **argv) | |||
36 | nagios_plugin *temp_nagios_plugin; | 39 | nagios_plugin *temp_nagios_plugin; |
37 | FILE *temp_fp; | 40 | FILE *temp_fp; |
38 | 41 | ||
39 | plan_tests(81+23); | 42 | plan_tests(134); |
40 | 43 | ||
41 | _get_nagios_plugin( &temp_nagios_plugin ); | 44 | _get_nagios_plugin( &temp_nagios_plugin ); |
42 | ok( temp_nagios_plugin==NULL, "nagios_plugin not initialised"); | 45 | ok( temp_nagios_plugin==NULL, "nagios_plugin not initialised"); |
@@ -295,13 +298,11 @@ main (int argc, char **argv) | |||
295 | ok( !strcmp(temp_state_key->name, "Ahash"), "Got key name" ); | 298 | ok( !strcmp(temp_state_key->name, "Ahash"), "Got key name" ); |
296 | 299 | ||
297 | 300 | ||
298 | printf("Filename=%s\n", temp_state_key->_filename); | ||
299 | np_enable_state("funnykeyname", 54); | 301 | np_enable_state("funnykeyname", 54); |
300 | temp_state_key = temp_nagios_plugin->state; | 302 | temp_state_key = temp_nagios_plugin->state; |
301 | ok( !strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name" ); | 303 | ok( !strcmp(temp_state_key->plugin_name, "check_test"), "Got plugin name" ); |
302 | ok( !strcmp(temp_state_key->name, "funnykeyname"), "Got key name" ); | 304 | ok( !strcmp(temp_state_key->name, "funnykeyname"), "Got key name" ); |
303 | 305 | ||
304 | printf("Filename=%s\n", temp_state_key->_filename); | ||
305 | 306 | ||
306 | 307 | ||
307 | ok( !strcmp(temp_state_key->_filename, "/usr/local/nagios/var/check_test/funnykeyname"), "Got internal filename" ); | 308 | ok( !strcmp(temp_state_key->_filename, "/usr/local/nagios/var/check_test/funnykeyname"), "Got internal filename" ); |
@@ -325,20 +326,71 @@ main (int argc, char **argv) | |||
325 | ok( temp_nagios_plugin->state->state_data!=NULL, "Got state data now" ); | 326 | ok( temp_nagios_plugin->state->state_data!=NULL, "Got state data now" ); |
326 | ok( temp_nagios_plugin->state->state_data->time==1234567890, "Got time" ); | 327 | ok( temp_nagios_plugin->state->state_data->time==1234567890, "Got time" ); |
327 | ok( !strcmp((char *)temp_nagios_plugin->state->state_data->data, "String to read"), "Data as expected" ); | 328 | ok( !strcmp((char *)temp_nagios_plugin->state->state_data->data, "String to read"), "Data as expected" ); |
328 | printf("state_data=%s|\n", temp_nagios_plugin->state->state_data->data); | ||
329 | 329 | ||
330 | temp_state_key->data_version=53; | ||
331 | temp_state_data = np_state_read(temp_state_key); | ||
332 | ok( temp_state_data==NULL, "Older data version gives NULL" ); | ||
333 | temp_state_key->data_version=54; | ||
330 | 334 | ||
331 | temp_state_key->_filename="var/nonexistant"; | 335 | temp_state_key->_filename="var/nonexistant"; |
332 | temp_state_data = np_state_read(temp_state_key); | 336 | temp_state_data = np_state_read(temp_state_key); |
333 | ok( temp_state_data==NULL, "Missing file gives NULL" ); | 337 | ok( temp_state_data==NULL, "Missing file gives NULL" ); |
334 | ok( temp_nagios_plugin->state->state_data==NULL, "No state information" ); | 338 | ok( temp_nagios_plugin->state->state_data==NULL, "No state information" ); |
335 | 339 | ||
336 | time(¤t_time); | 340 | temp_state_key->_filename="var/oldformat"; |
337 | np_state_write_string(NULL, "New data"); | 341 | temp_state_data = np_state_read(temp_state_key); |
342 | ok( temp_state_data==NULL, "Old file format gives NULL" ); | ||
343 | |||
344 | temp_state_key->_filename="var/baddate"; | ||
345 | temp_state_data = np_state_read(temp_state_key); | ||
346 | ok( temp_state_data==NULL, "Bad date gives NULL" ); | ||
338 | 347 | ||
348 | temp_state_key->_filename="var/missingdataline"; | ||
349 | temp_state_data = np_state_read(temp_state_key); | ||
350 | ok( temp_state_data==NULL, "Missing data line gives NULL" ); | ||
351 | |||
352 | |||
353 | |||
354 | |||
355 | unlink("var/generated"); | ||
356 | temp_state_key->_filename="var/generated"; | ||
357 | current_time=1234567890; | ||
358 | np_state_write_string(¤t_time, "String to read"); | ||
359 | ok(system("cmp var/generated var/statefile")==0, "Generated file same as expected"); | ||
360 | |||
361 | |||
362 | |||
363 | |||
364 | unlink("var/generated_directory/statefile"); | ||
365 | unlink("var/generated_directory"); | ||
366 | temp_state_key->_filename="var/generated_directory/statefile"; | ||
367 | current_time=1234567890; | ||
368 | np_state_write_string(¤t_time, "String to read"); | ||
369 | ok(system("cmp var/generated_directory/statefile var/statefile")==0, "Have created directory"); | ||
370 | |||
371 | /* This test to check cannot write to dir - can't automate yet */ | ||
372 | /* | ||
373 | unlink("var/generated_bad_dir"); | ||
374 | mkdir("var/generated_bad_dir", S_IRUSR); | ||
375 | np_state_write_string(¤t_time, "String to read"); | ||
376 | */ | ||
377 | |||
378 | |||
379 | temp_state_key->_filename="var/generated"; | ||
380 | time(¤t_time); | ||
381 | np_state_write_string(NULL, "String to read"); | ||
339 | temp_state_data = np_state_read(temp_state_key); | 382 | temp_state_data = np_state_read(temp_state_key); |
340 | /* Check time is set to current_time */ | 383 | /* Check time is set to current_time */ |
384 | ok(system("cmp var/generated var/statefile > /dev/null")!=0, "Generated file should be different this time"); | ||
385 | ok(temp_nagios_plugin->state->state_data->time-current_time<=1, "Has time generated from current time"); | ||
386 | |||
341 | 387 | ||
388 | /* Don't know how to automatically test this. Need to be able to redefine die and catch the error */ | ||
389 | /* | ||
390 | temp_state_key->_filename="/dev/do/not/expect/to/be/able/to/write"; | ||
391 | np_state_write_string(NULL, "Bad file"); | ||
392 | */ | ||
393 | |||
342 | 394 | ||
343 | np_cleanup(); | 395 | np_cleanup(); |
344 | ok(temp_state_key==NULL, "temp_state_key cleared"); | 396 | ok(temp_state_key==NULL, "temp_state_key cleared"); |