Code

Initial revision
[nagiosplug.git] / opttest.pl
diff --git a/opttest.pl b/opttest.pl
new file mode 100755 (executable)
index 0000000..85e3b49
--- /dev/null
@@ -0,0 +1,50 @@
+#!/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;
+}
+