diff --git a/opttest.pl b/opttest.pl deleted file mode 100755 index 85e3b494..00000000 --- a/opttest.pl +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/perl -w -use strict; -use Test; - -use vars qw($dir $file $prog $idx $state $output %progs @dirs); - -my $tests = 0; - -@dirs = qw(plugins plugins-scripts); - -foreach $dir (@dirs) { - opendir(DIR, $dir) || die "can't opendir $dir: $!"; - while ($file = readdir(DIR)) { - if (-x "$dir/$file" && -f "$dir/$file") { - $tests++; - $progs{"$dir/$file"} = $file; - } - } - closedir DIR; -} - -plan tests => $tests; - -for $prog (keys %progs) { - $state = 0; - $file = `basename $prog`; - - $idx = 1; - $output = `$prog -h 2>&1`; - if($?) {$state++;print "$prog failed test $idx\n";} - unless ($output =~ m/$progs{$prog}/ms) { - $idx++; $state++;print "$output\n$prog failed test $idx\n"; - } - - $idx++; - `$prog --help 2>&1 > /dev/null`; - if($?) {$state++;print "$prog failed test $idx\n";} - - $idx++; - `$prog -V 2>&1 > /dev/null`; - if($?) {$state++;print "$prog failed test $idx\n";} - - $idx++; - `$prog --version 2>&1 > /dev/null`; - if($?) {$state++;print "$prog failed test $idx\n";} - - print "$prog ($idx tests) "; - ok $state,0; -} - diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh old mode 100755 new mode 100644 index 866e0e0f..ba3581b1 --- a/plugins-scripts/check_sensors.sh +++ b/plugins-scripts/check_sensors.sh @@ -20,7 +20,6 @@ print_help() { echo "This plugin checks hardware status using the lm_sensors package." echo "" support - exit "$STATE_OK" } case "$1" in diff --git a/plugins/negate.c b/plugins/negate.c index 7e52fe67..750c0bfb 100644 --- a/plugins/negate.c +++ b/plugins/negate.c @@ -133,11 +133,11 @@ static const char **process_arguments(int argc, char **argv) { break; case 'h': /* help */ print_help(); - exit(EXIT_SUCCESS); + exit(STATE_UNKNOWN); break; case 'V': /* version */ print_revision(progname, NP_VERSION); - exit(EXIT_SUCCESS); + exit(STATE_UNKNOWN); case 't': /* timeout period */ if (!is_integer(optarg)) usage2(_("Timeout interval must be a positive integer"), optarg); diff --git a/tools/opttest.pl b/tools/opttest.pl new file mode 100755 index 00000000..98213082 --- /dev/null +++ b/tools/opttest.pl @@ -0,0 +1,74 @@ +#!/usr/bin/perl -w +use strict; +use warnings; +use Test; + +# This script (when executed from the monitoring plugins top level directory) +# executes all the plugins with -h, --help, -V and --version to verify that +# all of them exit properly with the state UNKNOWN (3) + +use vars qw($dir $file $prog $idx $state $output %progs @dirs); + +my $tests = 0; + +@dirs = qw(plugins plugins-scripts); + +foreach my $dir (@dirs) { + opendir(DIR, $dir) || die "can't opendir $dir: $!"; + while ($file = readdir(DIR)) { + if (-x "$dir/$file" && -f "$dir/$file") { + $tests++; + $progs{"$dir/$file"} = $file; + } + } + closedir DIR; +} + +plan tests => $tests; + +for my $prog (keys %progs) { + $state = 0; + $file = `basename $prog`; + + $idx = 1; + $output = `$prog -h 2>&1`; + if(($? >> 8) != 3) { + $state++; + print "$prog failed test $idx (help exit code (short form))\n"; + exit(1); + } + + unless ($output =~ m/$progs{$prog}/ms) { + $idx++; + $state++; + print "$output\n$prog failed test $idx\n"; + } + + $idx++; + `$prog --help 2>&1 > /dev/null`; + if(($? >> 8) != 3) { + $state++; + print "$prog failed test $idx (help exit code (long form))\n"; + exit(1); + } + + $idx++; + `$prog -V 2>&1 > /dev/null`; + if(($? >> 8) != 3) { + $state++; + print "$prog failed test $idx (version exit code (short form))\n"; + exit(1); + } + + $idx++; + `$prog --version 2>&1 > /dev/null`; + if(($? >> 8) != 3) { + $state++; + print "$prog failed test $idx (version exit code (long form))\n"; + exit(1); + } + + print "$prog ($idx tests) "; + ok $state,0; +} +