summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Nierlein <sven@nierlein.de>2021-05-21 13:06:37 +0200
committerGitHub <noreply@github.com>2021-05-21 13:06:37 +0200
commit6946b546feb9635413932861c4256f0067846860 (patch)
tree8f2de1d6bb3359796685d2d3ca8c56ddfd4fc110
parentf0ac7fcc7c40fab04c00fbbc8c091e89e77b0f74 (diff)
parentb428cc17f75682465e6f1e59b32fdec02b87ceac (diff)
downloadmonitoring-plugins-6946b54.tar.gz
Merge pull request #1686 from monitoring-plugins/feature_github_actions
Migrate to GitHub actions
-rw-r--r--.github/NPTest.cache (renamed from plugins/t/NPTest.cache.travis)8
-rwxr-xr-x.github/prepare_debian.sh101
-rw-r--r--.github/workflows/test.yml46
-rw-r--r--.travis.yml98
-rw-r--r--plugins-root/Makefile.am3
-rw-r--r--plugins-root/t/check_dhcp.t9
-rw-r--r--plugins/t/check_curl.t7
-rw-r--r--plugins/t/check_fping.t32
-rw-r--r--plugins/t/check_http.t4
-rwxr-xr-xplugins/tests/check_curl.t5
-rwxr-xr-xplugins/tests/check_http.t17
11 files changed, 194 insertions, 136 deletions
diff --git a/plugins/t/NPTest.cache.travis b/.github/NPTest.cache
index 9b9f8059..232305a7 100644
--- a/plugins/t/NPTest.cache.travis
+++ b/.github/NPTest.cache
@@ -11,7 +11,7 @@
11 'NP_HOSTNAME_VALID_IP' => '130.133.8.40', 11 'NP_HOSTNAME_VALID_IP' => '130.133.8.40',
12 'NP_HOSTNAME_VALID' => 'monitoring-plugins.org', 12 'NP_HOSTNAME_VALID' => 'monitoring-plugins.org',
13 'NP_HOSTNAME_VALID_REVERSE' => 'orwell.monitoring-plugins.org.', 13 'NP_HOSTNAME_VALID_REVERSE' => 'orwell.monitoring-plugins.org.',
14 'NP_HOST_NONRESPONSIVE' => '10.0.0.1', 14 'NP_HOST_NONRESPONSIVE' => '192.168.1.2',
15 'NP_HOST_RESPONSIVE' => 'localhost', 15 'NP_HOST_RESPONSIVE' => 'localhost',
16 'NP_HOST_SMB' => '', 16 'NP_HOST_SMB' => '',
17 'NP_HOST_SNMP' => '', 17 'NP_HOST_SNMP' => '',
@@ -27,12 +27,12 @@
27 'NP_HOST_TCP_SMTP' => 'localhost', 27 'NP_HOST_TCP_SMTP' => 'localhost',
28 'NP_HOST_TCP_SMTP_NOTLS' => '', 28 'NP_HOST_TCP_SMTP_NOTLS' => '',
29 'NP_HOST_TCP_SMTP_TLS' => '', 29 'NP_HOST_TCP_SMTP_TLS' => '',
30 'NP_HOST_TLS_CERT' => 'localhost, 30 'NP_HOST_TLS_CERT' => 'localhost',
31 'NP_HOST_TLS_HTTP' => 'localhost', 31 'NP_HOST_TLS_HTTP' => 'localhost',
32 'NP_HOST_UDP_TIME' => 'none', 32 'NP_HOST_UDP_TIME' => 'none',
33 'NP_INTERNET_ACCESS' => 'yes', 33 'NP_INTERNET_ACCESS' => 'yes',
34 'NP_LDAP_BASE_DN' => 'cn=admin,dc=nodomain', 34 'NP_LDAP_BASE_DN' => 'dc=nodomain',
35 'NP_MOUNTPOINT2_VALID' => '/media/ramdisk', 35 'NP_MOUNTPOINT2_VALID' => '/media/ramdisk1',
36 'NP_MOUNTPOINT_VALID' => '/', 36 'NP_MOUNTPOINT_VALID' => '/',
37 'NP_MYSQL_LOGIN_DETAILS' => '-u root -d test', 37 'NP_MYSQL_LOGIN_DETAILS' => '-u root -d test',
38 'NP_MYSQL_SERVER' => 'localhost', 38 'NP_MYSQL_SERVER' => 'localhost',
diff --git a/.github/prepare_debian.sh b/.github/prepare_debian.sh
new file mode 100755
index 00000000..c68b9f5d
--- /dev/null
+++ b/.github/prepare_debian.sh
@@ -0,0 +1,101 @@
1#!/bin/bash
2
3set -x
4set -e
5
6export DEBIAN_FRONTEND=noninteractive
7
8apt-get update
9apt-get -y install software-properties-common
10if [ $(lsb_release -is) = "Debian" ]; then
11 apt-add-repository non-free
12 apt-get update
13fi
14apt-get -y install perl autotools-dev libdbi-dev libldap2-dev libpq-dev libradcli-dev libnet-snmp-perl procps
15apt-get -y install libdbi0-dev libdbd-sqlite3 libssl-dev dnsutils snmp-mibs-downloader libsnmp-perl snmpd
16apt-get -y install fping snmp netcat smbclient vsftpd apache2 ssl-cert postfix libhttp-daemon-ssl-perl
17apt-get -y install libdbd-sybase-perl libnet-dns-perl
18apt-get -y install slapd ldap-utils
19apt-get -y install gcc make autoconf automake gettext
20apt-get -y install faketime
21apt-get -y install libmonitoring-plugin-perl
22apt-get -y install libcurl4-openssl-dev
23apt-get -y install liburiparser-dev
24apt-get -y install squid
25apt-get -y install openssh-server
26apt-get -y install mariadb-server mariadb-client libmariadb-dev
27apt-get -y install cron iputils-ping
28apt-get -y install iproute2
29
30# remove ipv6 interface from hosts
31if [ $(ip addr show | grep "inet6 ::1" | wc -l) -eq "0" ]; then
32 sed '/^::1/d' /etc/hosts > /tmp/hosts
33 cp -f /tmp/hosts /etc/hosts
34fi
35
36ip addr show
37
38cat /etc/hosts
39
40
41# apache
42a2enmod ssl
43a2ensite default-ssl
44# replace snakeoil certs with openssl generated ones as the make-ssl-cert ones
45# seems to cause problems with our plugins
46rm /etc/ssl/certs/ssl-cert-snakeoil.pem
47rm /etc/ssl/private/ssl-cert-snakeoil.key
48openssl req -nodes -newkey rsa:2048 -x509 -sha256 -days 365 -nodes -keyout /etc/ssl/private/ssl-cert-snakeoil.key -out /etc/ssl/certs/ssl-cert-snakeoil.pem -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=$(hostname)"
49service apache2 restart
50
51# squid
52cp tools/squid.conf /etc/squid/squid.conf
53service squid start
54
55# mariadb
56service mariadb start
57mysql -e "create database IF NOT EXISTS test;" -uroot
58
59# ldap
60sed -e 's/cn=admin,dc=nodomain/'$(/usr/sbin/slapcat|grep ^dn:|awk '{print $2}')'/' -i .github/NPTest.cache
61service slapd start
62
63# sshd
64ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
65cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
66service ssh start
67sleep 1
68ssh-keyscan localhost >> ~/.ssh/known_hosts
69touch ~/.ssh/config
70
71# start one login session, required for check_users
72ssh -tt localhost </dev/null >/dev/null 2>/dev/null &
73disown %1
74
75# snmpd
76for DIR in /usr/share/snmp/mibs /usr/share/mibs; do
77 rm -f $DIR/ietf/SNMPv2-PDU \
78 $DIR/ietf/IPSEC-SPD-MIB \
79 $DIR/ietf/IPATM-IPMC-MIB \
80 $DIR/iana/IANA-IPPM-METRICS-REGISTRY-MIB
81done
82mkdir -p /var/lib/snmp/mib_indexes
83sed -e 's/^agentaddress.*/agentaddress 127.0.0.1/' -i /etc/snmp/snmpd.conf
84service snmpd start
85
86# start cron, will be used by check_nagios
87cron
88
89# start postfix
90service postfix start
91
92# start ftpd
93service vsftpd start
94
95# hostname
96sed "/NP_HOST_TLS_CERT/s/.*/'NP_HOST_TLS_CERT' => '$(hostname)',/" -i /src/.github/NPTest.cache
97
98# create some test files to lower inodes
99for i in $(seq 10); do
100 touch /media/ramdisk2/test.$1
101done
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 00000000..512d28e6
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,46 @@
1name: Test
2
3on:
4 push:
5 branches:
6 - '*'
7 pull_request:
8
9jobs:
10# macos:
11# ...
12 linux:
13 runs-on: ubuntu-latest
14 name: Running tests on ${{ matrix.distro }}
15 strategy:
16 fail-fast: false
17 matrix:
18 distro:
19 - 'debian:testing'
20 #...
21 include:
22 - distro: 'debian:testing'
23 prepare: .github/prepare_debian.sh
24 #...
25 steps:
26 - name: Git clone repository
27 uses: actions/checkout@v2
28 #- name: Setup tmate session, see https://github.com/marketplace/actions/debugging-with-tmate
29 # uses: mxschmitt/action-tmate@v3
30 - name: Run the tests on ${{ matrix.distro }}
31 run: |
32 docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol
33 docker run \
34 -e NPTEST_ACCEPTDEFAULT=1 \
35 -e NPTEST_CACHE="/src/.github/NPTest.cache" \
36 -w /src -v ${PWD}:/src \
37 --tmpfs /media/ramdisk1 \
38 --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \
39 ${{ matrix.distro }} \
40 /bin/sh -c '${{ matrix.prepare }} && \
41 tools/setup && \
42 ./configure --enable-libtap --with-ipv6=no && \
43 make && \
44 make test'
45 docker container prune -f
46 docker volume prune -f
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 3d9fe64e..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,98 +0,0 @@
1sudo: required
2dist: xenial
3language: c
4
5env:
6 global:
7 # This is the encrypted COVERITY_SCAN_TOKEN, created via the "travis
8 # encrypt" command using the project repository's public key.
9 - secure: "ggJ9c/VfKcwtrwz/My+ne4My7D8g3qi3vz5Hh+yLiri0+oIXCy313ZD6ssIEY/5beQZEOnuHhBgBJd/Y3clSQNc2M9fRNc+wxOkIO992lgnY0MZJN3y9MLfpqUbTClhU9Fst0qXQqGpI6UI8yz1tj7yKi7DPrycJLRrjMpyTfyo="
10
11matrix:
12 include:
13 - compiler: "gcc"
14 os: linux
15 env:
16 - PLATFORM=linux BITS=64 HOST=x86_64
17 addons:
18 coverity_scan:
19 project:
20 name: "monitoring-plugins/monitoring-plugins"
21 description: "Monitoring Plugins"
22 notification_email: team@monitoring-plugins.org
23 build_command_prepend: tools/setup && ./configure
24 build_command: make
25 branch_pattern: coverity.*
26 - compiler: "clang"
27 os: linux
28 env:
29 - PLATFORM=linux BITS=64 HOST=x86_64
30
31before_install:
32 # Trusty related fixed
33 # multiverse is no on trusty activated (https://github.com/travis-ci/travis-ci/issues/4979)
34 - sudo apt-get install -qq --no-install-recommends software-properties-common
35 - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ trusty multiverse" && sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ trusty-updates multiverse"
36 # /etc/hosts has IPv6 hosts (https://github.com/travis-ci/travis-ci/issues/4978)
37 - sudo [ $(ip addr show | grep "inet6 ::1" | wc -l) -eq "0" ] || sudo sed -i '/^::1/d' /etc/hosts
38 # Trusty has running ntpd on localhost, but we don't like that for our tests
39 - "sudo killall -9 ntpd ||:"
40 # Trusty has no swap, lets create some
41 - sudo fallocate -l 20M /swapfile; sudo chmod 600 /swapfile; sudo mkswap /swapfile; sudo swapon /swapfile
42 - sudo apt-get update -qq
43 - sudo apt-get purge -qq gawk
44
45install:
46 - sudo apt-get install -qq --no-install-recommends perl autotools-dev libdbi-dev libldap2-dev libpq-dev libmysqlclient-dev libradcli-dev libkrb5-dev libnet-snmp-perl procps
47 - sudo apt-get install -qq --no-install-recommends libdbi0-dev libdbd-sqlite3 libssl-dev dnsutils snmp-mibs-downloader libsnmp-perl snmpd
48 - sudo apt-get install -qq --no-install-recommends fping snmp netcat smbclient fping pure-ftpd apache2 ssl-cert postfix libhttp-daemon-ssl-perl
49 - sudo apt-get install -qq --no-install-recommends libdbd-sybase-perl libnet-dns-perl
50 - sudo apt-get install -qq --no-install-recommends slapd ldap-utils
51 - sudo apt-get install -qq --no-install-recommends autoconf automake
52 - sudo apt-get install -qq --no-install-recommends faketime
53 - sudo apt-get install -qq --no-install-recommends libmonitoring-plugin-perl
54 - sudo apt-get install -qq --no-install-recommends libcurl4-openssl-dev
55 - sudo apt-get install -qq --no-install-recommends liburiparser-dev
56 - sudo apt-get install -qq --no-install-recommends squid
57 # Trusty related dependencies (not yet provided)
58 - test "$(dpkg -l | grep -E "mysql-(client|server)-[0-9].[0-9]" | grep -c ^ii)" -gt 0 || sudo apt-get install -qq --no-install-recommends mariadb-client mariadb-server
59 # enable ssl apache
60 - sudo a2enmod ssl
61 - sudo a2ensite default-ssl
62 - sudo make-ssl-cert generate-default-snakeoil --force-overwrite
63 - sudo service apache2 reload
64 - sudo cp tools/squid.conf /etc/squid/squid.conf
65 - sudo service squid reload
66 - sudo service mysql restart
67
68before_script:
69 # ensure we have a test database in place for tests
70 - mysql -e "create database IF NOT EXISTS test;" -uroot
71 # Detect LDAP configuration (seems volatile on trusty env)
72 - sed -e 's/cn=admin,dc=nodomain/'$(sudo /usr/sbin/slapcat|grep ^dn:|grep cn=|awk '{print $2}')'/' -i plugins/t/NPTest.cache.travis
73 - tools/setup
74 - ./configure --enable-libtap
75 - make
76 - export NPTEST_ACCEPTDEFAULT=1
77 - export NPTEST_CACHE="$(pwd)/plugins/t/NPTest.cache.travis"
78 - ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
79 - cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
80 - ssh-keyscan localhost >> ~/.ssh/known_hosts
81 - touch ~/.ssh/config
82 - sudo rm -f /usr/share/mibs/ietf/SNMPv2-PDU /usr/share/mibs/ietf/IPSEC-SPD-MIB /usr/share/mibs/ietf/IPATM-IPMC-MIB /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
83 - sudo mkdir -p /var/lib/snmp/mib_indexes
84 - sudo mkdir /media/ramdisk && sudo chmod 777 /media/ramdisk && sudo mount -t tmpfs -o size=20% none /media/ramdisk
85 - sed "/NP_HOST_TLS_CERT/s/.*/'NP_HOST_TLS_CERT' => '$(hostname)',/" -i $NPTEST_CACHE
86
87script:
88 - if [ "$COVERITY_SCAN_BRANCH" != 1 ]; then make test; fi
89
90notifications:
91 irc:
92 channels:
93 - "chat.freenode.net#Monitoring-Plugins"
94 on_success: change
95 on_failure: always
96 skip_join: true
97 email:
98 # - team@monitoring-plugins.org
diff --git a/plugins-root/Makefile.am b/plugins-root/Makefile.am
index a1ebb6d2..7cd2675a 100644
--- a/plugins-root/Makefile.am
+++ b/plugins-root/Makefile.am
@@ -37,6 +37,9 @@ TESTS = @PLUGIN_TEST@
37test: 37test:
38 perl -I $(top_builddir) -I $(top_srcdir) ../test.pl 38 perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
39 39
40test-debug:
41 NPTEST_DEBUG=1 HARNESS_VERBOSE=1 perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
42
40setuid_root_mode = ug=rx,u+s 43setuid_root_mode = ug=rx,u+s
41 44
42# /* Author Coreutils team - see ACKNOWLEDGEMENTS */ 45# /* Author Coreutils team - see ACKNOWLEDGEMENTS */
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) {
19my $sudo = $> == 0 ? '' : 'sudo'; 19my $sudo = $> == 0 ? '' : 'sudo';
20 20
21my $successOutput = '/OK: Received \d+ DHCPOFFER\(s\), \d+ of 1 requested servers responded, max lease time = \d+ sec\./'; 21my $successOutput = '/OK: Received \d+ DHCPOFFER\(s\), \d+ of 1 requested servers responded, max lease time = \d+ sec\./';
22my $failureOutput = '/CRITICAL: No DHCPOFFERs were received/'; 22my $failureOutput = '/CRITICAL: (No DHCPOFFERs were received|Received \d+ DHCPOFFER\(s\), 0 of 1 requested servers responded, max lease time = \d+ sec\.)/';
23my $invalidOutput = '/Invalid hostname/'; 23my $invalidOutput = '/Invalid hostname/';
24 24
25my $host_responsive = getTestParameter( "NP_HOST_DHCP_RESPONSIVE", 25my $host_responsive = getTestParameter( "NP_HOST_DHCP_RESPONSIVE",
@@ -36,7 +36,12 @@ my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID",
36 36
37# try to determince interface 37# try to determince interface
38my $interface = ''; 38my $interface = '';
39if(`ifconfig -a 2>/dev/null` =~ m/^(e\w*\d+)/mx and $1 ne 'eth0') { 39
40# find interface used for default route
41if (-x '/usr/sbin/ip' and `/usr/sbin/ip route get 1.1.1.1 2>/dev/null` =~ m/\sdev\s(\S+)/) {
42 $interface = "-i $1";
43}
44elsif (`ifconfig -a 2>/dev/null` =~ m/^(e\w*\d+)/mx and $1 ne 'eth0') {
40 $interface = ' -i '.$1; 45 $interface = ' -i '.$1;
41} 46}
42 47
diff --git a/plugins/t/check_curl.t b/plugins/t/check_curl.t
index a4f1dfb3..45ee5339 100644
--- a/plugins/t/check_curl.t
+++ b/plugins/t/check_curl.t
@@ -84,7 +84,7 @@ like( $res->output, '/^Host: testhost:8001\s*$/ms', "Host Header OK" );
84like( $res->output, '/CURLOPT_URL: http:\/\/'.$host_tcp_http.':80\//ms', "Url OK" ); 84like( $res->output, '/CURLOPT_URL: http:\/\/'.$host_tcp_http.':80\//ms', "Url OK" );
85 85
86SKIP: { 86SKIP: {
87 skip "No internet access", 3 if $internet_access eq "no"; 87 skip "No internet access", 4 if $internet_access eq "no";
88 88
89 $res = NPTest->testCmd("./$plugin -v -H $host_tls_http -S"); 89 $res = NPTest->testCmd("./$plugin -v -H $host_tls_http -S");
90 like( $res->output, '/^Host: '.$host_tls_http.'\s*$/ms', "Host Header OK" ); 90 like( $res->output, '/^Host: '.$host_tls_http.'\s*$/ms', "Host Header OK" );
@@ -120,7 +120,7 @@ SKIP: {
120 cmp_ok( $res->return_code, "==", 0, "And also when not found"); 120 cmp_ok( $res->return_code, "==", 0, "And also when not found");
121} 121}
122SKIP: { 122SKIP: {
123 skip "No internet access", 16 if $internet_access eq "no"; 123 skip "No internet access", 28 if $internet_access eq "no";
124 124
125 $res = NPTest->testCmd( 125 $res = NPTest->testCmd(
126 "./$plugin --ssl $host_tls_http" 126 "./$plugin --ssl $host_tls_http"
@@ -193,8 +193,7 @@ SKIP: {
193 ); 193 );
194 cmp_ok( $res->return_code, "==", 0, "Can read https for www.e-paycobalt.com (uses AES certificate)" ); 194 cmp_ok( $res->return_code, "==", 0, "Can read https for www.e-paycobalt.com (uses AES certificate)" );
195 195
196 196 $res = NPTest->testCmd( "./$plugin -H www.mozilla.com -u /firefox -f curl" );
197 $res = NPTest->testCmd( "./$plugin -H www.mozilla.com -u /firefox -f follow" );
198 is( $res->return_code, 0, "Redirection based on location is okay"); 197 is( $res->return_code, 0, "Redirection based on location is okay");
199 198
200 $res = NPTest->testCmd( "./$plugin -H www.mozilla.com --extended-perfdata" ); 199 $res = NPTest->testCmd( "./$plugin -H www.mozilla.com --extended-perfdata" );
diff --git a/plugins/t/check_fping.t b/plugins/t/check_fping.t
index 342b0a7e..67b357b2 100644
--- a/plugins/t/check_fping.t
+++ b/plugins/t/check_fping.t
@@ -5,34 +5,30 @@
5# 5#
6 6
7use strict; 7use strict;
8use Test; 8use Test::More;
9use NPTest; 9use NPTest;
10 10
11use vars qw($tests);
12
13BEGIN {$tests = 4; plan tests => $tests}
14
15my $successOutput = '/^FPING OK - /';
16my $failureOutput = '/^FPING CRITICAL - /';
17
18my $host_responsive = getTestParameter("NP_HOST_RESPONSIVE", "The hostname of system responsive to network requests", "localhost"); 11my $host_responsive = getTestParameter("NP_HOST_RESPONSIVE", "The hostname of system responsive to network requests", "localhost");
19my $host_nonresponsive = getTestParameter("NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1"); 12my $host_nonresponsive = getTestParameter("NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1");
20my $hostname_invalid = getTestParameter("NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost"); 13my $hostname_invalid = getTestParameter("NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost");
21 14
22my $t; 15my $res;
23 16
24my $fping = qx(which fping 2> /dev/null); 17my $fping = qx(which fping 2> /dev/null);
25chomp($fping); 18chomp($fping);
26if( ! -x "./check_fping") { 19if( ! -x "./check_fping") {
27 $t += skipMissingCmd( "./check_fping", $tests ); 20 plan skip_all => "check_fping not found, skipping tests";
28} 21}
29elsif ( $> != 0 && (!$fping || ! -u $fping)) { 22elsif ( !$fping || !-x $fping ) {
30 $t += skipMsg( "./check_fping", $tests ); 23 plan skip_all => "fping not found or cannot be executed, skipping tests";
31} else { 24} else {
32 $t += checkCmd( "./check_fping $host_responsive", 0, $successOutput ); 25 plan tests => 3;
33 $t += checkCmd( "./check_fping $host_nonresponsive", [ 1, 2 ] ); 26 $res = NPTest->testCmd( "./check_fping $host_responsive" );
34 $t += checkCmd( "./check_fping $hostname_invalid", [ 1, 2 ] ); 27 cmp_ok( $res->return_code, '==', 0, "Responsive host returns OK");
35} 28
29 $res = NPTest->testCmd( "./check_fping $host_nonresponsive" );
30 cmp_ok( $res->return_code, '==', 2, "Non-Responsive host returns Critical");
36 31
37exit(0) if defined($Test::Harness::VERSION); 32 $res = NPTest->testCmd( "./check_fping $hostname_invalid" );
38exit($tests - $t); 33 cmp_ok( $res->return_code, '==', 3, "Invalid host returns Unknown");
34}
diff --git a/plugins/t/check_http.t b/plugins/t/check_http.t
index e92681e9..c137f7b4 100644
--- a/plugins/t/check_http.t
+++ b/plugins/t/check_http.t
@@ -103,7 +103,7 @@ SKIP: {
103 cmp_ok( $res->return_code, "==", 0, "And also when not found"); 103 cmp_ok( $res->return_code, "==", 0, "And also when not found");
104} 104}
105SKIP: { 105SKIP: {
106 skip "No internet access", 16 if $internet_access eq "no"; 106 skip "No internet access", 23 if $internet_access eq "no";
107 107
108 $res = NPTest->testCmd( 108 $res = NPTest->testCmd(
109 "./$plugin --ssl $host_tls_http" 109 "./$plugin --ssl $host_tls_http"
@@ -135,7 +135,7 @@ SKIP: {
135 135
136 # run some certificate checks with faketime 136 # run some certificate checks with faketime
137 SKIP: { 137 SKIP: {
138 skip "No faketime binary found", 12 if !$faketime; 138 skip "No faketime binary found", 7 if !$faketime;
139 $res = NPTest->testCmd("LC_TIME=C TZ=UTC ./$plugin -C 1 $host_tls_http"); 139 $res = NPTest->testCmd("LC_TIME=C TZ=UTC ./$plugin -C 1 $host_tls_http");
140 like($res->output, qr/OK - Certificate '$host_tls_cert' will expire on/, "Catch cert output"); 140 like($res->output, qr/OK - Certificate '$host_tls_cert' will expire on/, "Catch cert output");
141 is( $res->return_code, 0, "Catch cert output exit code" ); 141 is( $res->return_code, 0, "Catch cert output exit code" );
diff --git a/plugins/tests/check_curl.t b/plugins/tests/check_curl.t
index 0caad23d..29cb03f2 100755
--- a/plugins/tests/check_curl.t
+++ b/plugins/tests/check_curl.t
@@ -126,8 +126,6 @@ if ($pid) {
126 exit; 126 exit;
127 } 127 }
128 } 128 }
129 # give our webservers some time to startup
130 sleep(1);
131} else { 129} else {
132 # Child 130 # Child
133 #print "child\n"; 131 #print "child\n";
@@ -140,6 +138,9 @@ if ($pid) {
140 exit; 138 exit;
141} 139}
142 140
141# give our webservers some time to startup
142sleep(3);
143
143# Run the same server on http and https 144# Run the same server on http and https
144sub run_server { 145sub run_server {
145 my $d = shift; 146 my $d = shift;
diff --git a/plugins/tests/check_http.t b/plugins/tests/check_http.t
index 2f051fad..188f5e75 100755
--- a/plugins/tests/check_http.t
+++ b/plugins/tests/check_http.t
@@ -91,6 +91,8 @@ if ($pid) {
91 exit; 91 exit;
92 } 92 }
93 } else { 93 } else {
94 # closing the connection after -C cert checks make the daemon exit with a sigpipe otherwise
95 local $SIG{'PIPE'} = 'IGNORE';
94 my $d = HTTP::Daemon::SSL->new( 96 my $d = HTTP::Daemon::SSL->new(
95 LocalPort => $port_https, 97 LocalPort => $port_https,
96 LocalAddr => "127.0.0.1", 98 LocalAddr => "127.0.0.1",
@@ -102,8 +104,6 @@ if ($pid) {
102 exit; 104 exit;
103 } 105 }
104 } 106 }
105 # give our webservers some time to startup
106 sleep(1);
107} else { 107} else {
108 # Child 108 # Child
109 #print "child\n"; 109 #print "child\n";
@@ -116,6 +116,9 @@ if ($pid) {
116 exit; 116 exit;
117} 117}
118 118
119# give our webservers some time to startup
120sleep(3);
121
119# Run the same server on http and https 122# Run the same server on http and https
120sub run_server { 123sub run_server {
121 my $d = shift; 124 my $d = shift;
@@ -414,22 +417,24 @@ sub run_common_tests {
414 417
415 # stickyport - on full urlS port is set back to 80 otherwise 418 # stickyport - on full urlS port is set back to 80 otherwise
416 $cmd = "$command -f stickyport -u /redir_external -t 5 -s redirected"; 419 $cmd = "$command -f stickyport -u /redir_external -t 5 -s redirected";
420 alarm(2);
417 eval { 421 eval {
418 local $SIG{ALRM} = sub { die "alarm\n" }; 422 local $SIG{ALRM} = sub { die "alarm\n" };
419 alarm(2);
420 $result = NPTest->testCmd( $cmd ); 423 $result = NPTest->testCmd( $cmd );
421 alarm(0); }; 424 };
422 isnt( $@, "alarm\n", $cmd ); 425 isnt( $@, "alarm\n", $cmd );
426 alarm(0);
423 is( $result->return_code, 0, $cmd ); 427 is( $result->return_code, 0, $cmd );
424 428
425 # Let's hope there won't be any web server on :80 returning "redirected"! 429 # Let's hope there won't be any web server on :80 returning "redirected"!
426 $cmd = "$command -f sticky -u /redir_external -t 5 -s redirected"; 430 $cmd = "$command -f sticky -u /redir_external -t 5 -s redirected";
431 alarm(2);
427 eval { 432 eval {
428 local $SIG{ALRM} = sub { die "alarm\n" }; 433 local $SIG{ALRM} = sub { die "alarm\n" };
429 alarm(2);
430 $result = NPTest->testCmd( $cmd ); 434 $result = NPTest->testCmd( $cmd );
431 alarm(0); }; 435 };
432 isnt( $@, "alarm\n", $cmd ); 436 isnt( $@, "alarm\n", $cmd );
437 alarm(0);
433 isnt( $result->return_code, 0, $cmd ); 438 isnt( $result->return_code, 0, $cmd );
434 439
435 # Test an external address - timeout 440 # Test an external address - timeout