2017-05-19 22:22:40 +02:00
|
|
|
#!/usr/bin/perl
|
|
|
|
#
|
|
|
|
# Taking a known nagios configuration directory, will check that the objects.cache is as expected
|
|
|
|
|
|
|
|
use warnings;
|
|
|
|
use strict;
|
|
|
|
use Test::More;
|
|
|
|
use FindBin qw($Bin);
|
|
|
|
|
|
|
|
chdir $Bin or die "Cannot chdir";
|
|
|
|
|
|
|
|
my $topdir = "$Bin/..";
|
|
|
|
my $nagios = "$topdir/base/nagios";
|
|
|
|
my $etc = "$Bin/etc";
|
|
|
|
my $precache = "$Bin/var/objects.precache";
|
|
|
|
|
|
|
|
plan tests => 2;
|
|
|
|
|
|
|
|
my $output = `$nagios -v "$etc/nagios.cfg"`;
|
|
|
|
if ($? == 0) {
|
|
|
|
pass("Nagios validated test configuration successfully");
|
|
|
|
} else {
|
|
|
|
fail("Nagios validation failed:\n$output");
|
|
|
|
}
|
|
|
|
|
|
|
|
system("$nagios -vp '$etc/nagios.cfg' > /dev/null") == 0 or die "Cannot create precached objects file";
|
|
|
|
system("grep -v 'Created:' $precache > '$precache.generated'");
|
|
|
|
|
|
|
|
my $diff = "diff -u $precache.expected $precache.generated";
|
|
|
|
my @output = `$diff`;
|
|
|
|
if ($? == 0) {
|
|
|
|
pass( "Nagios precached objects file matches expected" );
|
|
|
|
} else {
|
2017-05-19 23:37:19 +02:00
|
|
|
fail( "Nagios precached objects discrepancy!!!\nTest with: $diff\nCopy with: cp $precache.generated $precache.expected" );
|
2017-05-19 22:22:40 +02:00
|
|
|
print "#$_" foreach @output;
|
|
|
|
}
|
|
|
|
|