aboutsummaryrefslogtreecommitdiff
path: root/plugins-root/t/check_dhcp.t
diff options
context:
space:
mode:
authorGravatar Aksel Sjögren <asjogren@itrsgroup.com> 2021-04-29 15:58:50 +0200
committerGravatar Jacob Hansen <jhansen@op5.com> 2021-04-30 11:14:10 +0200
commit39c162e594ec962eb338332624d3ac7474227a2b (patch)
tree87b84c1f7dba02069130307559c5679f6ced3d37 /plugins-root/t/check_dhcp.t
parente712d5a6ef194845e815f0471589262bcb1cced4 (diff)
downloadmonitoring-plugins-39c162e594ec962eb338332624d3ac7474227a2b.tar.gz
Fix check_dhcp tests
* try to use "/usr/sbin/ip" before "ifconfig" since the latter is obsolete on Linux to figure out interface to listen for DHCP messages. But keeping ifconfig method just in case. Without this, tests fail on boxes without ifconfig AND the correct interface named ethX. * amend possible failure responses, as check_dhcp might get a DHCPOFFER, but from an unexpected address - which happens if the box running tests are on a network with a DHCP server.
Diffstat (limited to 'plugins-root/t/check_dhcp.t')
-rw-r--r--plugins-root/t/check_dhcp.t9
1 files changed, 7 insertions, 2 deletions
diff --git a/plugins-root/t/check_dhcp.t b/plugins-root/t/check_dhcp.t
index 222f4544..ce627736 100644
--- a/plugins-root/t/check_dhcp.t
+++ b/plugins-root/t/check_dhcp.t
@@ -19,7 +19,7 @@ if ($allow_sudo eq "yes" or $> == 0) {
my $sudo = $> == 0 ? '' : 'sudo';
my $successOutput = '/OK: Received \d+ DHCPOFFER\(s\), \d+ of 1 requested servers responded, max lease time = \d+ sec\./';
-my $failureOutput = '/CRITICAL: No DHCPOFFERs were received/';
+my $failureOutput = '/CRITICAL: (No DHCPOFFERs were received|Received \d+ DHCPOFFER\(s\), 0 of 1 requested servers responded, max lease time = \d+ sec\.)/';
my $invalidOutput = '/Invalid hostname/';
my $host_responsive = getTestParameter( "NP_HOST_DHCP_RESPONSIVE",
@@ -36,7 +36,12 @@ my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID",
# try to determince interface
my $interface = '';
-if(`ifconfig -a 2>/dev/null` =~ m/^(e\w*\d+)/mx and $1 ne 'eth0') {
+
+# find interface used for default route
+if (-x '/usr/sbin/ip' and `/usr/sbin/ip route get 1.1.1.1 2>/dev/null` =~ m/\sdev\s(\S+)/) {
+ $interface = "-i $1";
+}
+elsif (`ifconfig -a 2>/dev/null` =~ m/^(e\w*\d+)/mx and $1 ne 'eth0') {
$interface = ' -i '.$1;
}