diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2019-04-04 13:09:15 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2019-04-04 13:09:15 +0200 |
commit | 2f4d6764d78cf085601b34ac92486405bd11095d (patch) | |
tree | 550601dc79e74fd4c184dc96a95687d1d1238b43 /plugins/t/check_http.t | |
parent | faea5899ba3264581bf75649e4b399d0b69bd125 (diff) | |
parent | 5f16ba81c4af1a05e67806ca989a1dd46248a5fd (diff) | |
download | monitoring-plugins-2f4d6764d78cf085601b34ac92486405bd11095d.tar.gz |
Merge branch 'master' into feature_check_curl
Diffstat (limited to 'plugins/t/check_http.t')
-rw-r--r-- | plugins/t/check_http.t | 58 |
1 files changed, 26 insertions, 32 deletions
diff --git a/plugins/t/check_http.t b/plugins/t/check_http.t index 281fa362..e92681e9 100644 --- a/plugins/t/check_http.t +++ b/plugins/t/check_http.t | |||
@@ -9,7 +9,7 @@ use Test::More; | |||
9 | use POSIX qw/mktime strftime/; | 9 | use POSIX qw/mktime strftime/; |
10 | use NPTest; | 10 | use NPTest; |
11 | 11 | ||
12 | plan tests => 49; | 12 | plan tests => 50; |
13 | 13 | ||
14 | my $successOutput = '/OK.*HTTP.*second/'; | 14 | my $successOutput = '/OK.*HTTP.*second/'; |
15 | 15 | ||
@@ -17,32 +17,15 @@ my $res; | |||
17 | my $plugin = 'check_http'; | 17 | my $plugin = 'check_http'; |
18 | $plugin = 'check_curl' if $0 =~ m/check_curl/mx; | 18 | $plugin = 'check_curl' if $0 =~ m/check_curl/mx; |
19 | 19 | ||
20 | my $host_tcp_http = getTestParameter( "NP_HOST_TCP_HTTP", | 20 | my $host_tcp_http = getTestParameter("NP_HOST_TCP_HTTP", "A host providing the HTTP Service (a web server)", "localhost"); |
21 | "A host providing the HTTP Service (a web server)", | 21 | my $host_tls_http = getTestParameter("NP_HOST_TLS_HTTP", "A host providing the HTTPS Service (a tls web server)", "localhost"); |
22 | "localhost" ); | 22 | my $host_tls_cert = getTestParameter("NP_HOST_TLS_CERT", "the common name of the certificate.", "localhost"); |
23 | 23 | my $host_nonresponsive = getTestParameter("NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1"); | |
24 | my $host_tls_http = getTestParameter( "host_tls_http", "NP_HOST_TLS_HTTP", "localhost", | 24 | my $hostname_invalid = getTestParameter("NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost"); |
25 | "A host providing the HTTPS Service (a tls web server)" ); | 25 | my $internet_access = getTestParameter("NP_INTERNET_ACCESS", "Is this system directly connected to the internet?", "yes"); |
26 | 26 | my $host_tcp_http2 = getTestParameter("NP_HOST_TCP_HTTP2", "A host providing an index page containing the string 'monitoring'", "test.monitoring-plugins.org"); | |
27 | my $host_tls_cert = getTestParameter( "host_tls_cert", "NP_HOST_TLS_CERT", "localhost", | 27 | my $host_tcp_proxy = getTestParameter("NP_HOST_TCP_PROXY", "A host providing a HTTP proxy with CONNECT support", "localhost"); |
28 | "the common name of the certificate." ); | 28 | my $port_tcp_proxy = getTestParameter("NP_PORT_TCP_PROXY", "Port of the proxy with HTTP and CONNECT support", "3128"); |
29 | |||
30 | |||
31 | my $host_nonresponsive = getTestParameter( "NP_HOST_NONRESPONSIVE", | ||
32 | "The hostname of system not responsive to network requests", | ||
33 | "10.0.0.1" ); | ||
34 | |||
35 | my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", | ||
36 | "An invalid (not known to DNS) hostname", | ||
37 | "nosuchhost"); | ||
38 | |||
39 | my $internet_access = getTestParameter( "NP_INTERNET_ACCESS", | ||
40 | "Is this system directly connected to the internet?", | ||
41 | "yes"); | ||
42 | |||
43 | my $host_tcp_http2 = getTestParameter( "NP_HOST_TCP_HTTP2", | ||
44 | "A host providing an index page containing the string 'monitoring'", | ||
45 | "test.monitoring-plugins.org" ); | ||
46 | 29 | ||
47 | my $faketime = -x '/usr/bin/faketime' ? 1 : 0; | 30 | my $faketime = -x '/usr/bin/faketime' ? 1 : 0; |
48 | 31 | ||
@@ -165,23 +148,18 @@ SKIP: { | |||
165 | my $time = strftime("%Y-%m-%d %H:%M:%S", localtime($ts)); | 148 | my $time = strftime("%Y-%m-%d %H:%M:%S", localtime($ts)); |
166 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts))."' ./$plugin -C 1 $host_tls_http"); | 149 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts))."' ./$plugin -C 1 $host_tls_http"); |
167 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' just expired/, "Output on expire date"); | 150 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' just expired/, "Output on expire date"); |
168 | is( $res->return_code, 2, "Output on expire date" ); | ||
169 | 151 | ||
170 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts-1))."' ./$plugin -C 1 $host_tls_http"); | 152 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts-1))."' ./$plugin -C 1 $host_tls_http"); |
171 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' expires in 0 minutes/, "cert expires in 1 second output"); | 153 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' expires in 0 minutes/, "cert expires in 1 second output"); |
172 | is( $res->return_code, 2, "cert expires in 1 second exit code" ); | ||
173 | 154 | ||
174 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts-120))."' ./$plugin -C 1 $host_tls_http"); | 155 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts-120))."' ./$plugin -C 1 $host_tls_http"); |
175 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' expires in 2 minutes/, "cert expires in 2 minutes output"); | 156 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' expires in 2 minutes/, "cert expires in 2 minutes output"); |
176 | is( $res->return_code, 2, "cert expires in 2 minutes exit code" ); | ||
177 | 157 | ||
178 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts-7200))."' ./$plugin -C 1 $host_tls_http"); | 158 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts-7200))."' ./$plugin -C 1 $host_tls_http"); |
179 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' expires in 2 hours/, "cert expires in 2 hours output"); | 159 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' expires in 2 hours/, "cert expires in 2 hours output"); |
180 | is( $res->return_code, 2, "cert expires in 2 hours exit code" ); | ||
181 | 160 | ||
182 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts+1))."' ./$plugin -C 1 $host_tls_http"); | 161 | $res = NPTest->testCmd("LC_TIME=C TZ=UTC faketime -f '".strftime("%Y-%m-%d %H:%M:%S", localtime($ts+1))."' ./$plugin -C 1 $host_tls_http"); |
183 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' expired on/, "Certificate expired output"); | 162 | like($res->output, qr/CRITICAL - Certificate '$host_tls_cert' expired on/, "Certificate expired output"); |
184 | is( $res->return_code, 2, "Certificate expired exit code" ); | ||
185 | }; | 163 | }; |
186 | 164 | ||
187 | $res = NPTest->testCmd( "./$plugin --ssl $host_tls_http -E" ); | 165 | $res = NPTest->testCmd( "./$plugin --ssl $host_tls_http -E" ); |
@@ -200,3 +178,19 @@ SKIP: { | |||
200 | $res = NPTest->testCmd( "./$plugin -H www.mozilla.com --extended-perfdata" ); | 178 | $res = NPTest->testCmd( "./$plugin -H www.mozilla.com --extended-perfdata" ); |
201 | like ( $res->output, '/time_connect=[\d\.]+/', 'Extended Performance Data Output OK' ); | 179 | like ( $res->output, '/time_connect=[\d\.]+/', 'Extended Performance Data Output OK' ); |
202 | } | 180 | } |
181 | |||
182 | SKIP: { | ||
183 | skip "No internet access or proxy configured", 6 if $internet_access eq "no" or ! $host_tcp_proxy; | ||
184 | |||
185 | $res = NPTest->testCmd( "./$plugin -I $host_tcp_proxy -p $port_tcp_proxy -u http://$host_tcp_http -e 200,301,302"); | ||
186 | is( $res->return_code, 0, "Proxy HTTP works"); | ||
187 | like($res->output, qr/OK: Status line output matched/, "Proxy HTTP Output is sufficent"); | ||
188 | |||
189 | $res = NPTest->testCmd( "./$plugin -I $host_tcp_proxy -p $port_tcp_proxy -H $host_tls_http -S -j CONNECT"); | ||
190 | is( $res->return_code, 0, "Proxy HTTP CONNECT works"); | ||
191 | like($res->output, qr/HTTP OK:/, "Proxy HTTP CONNECT output sufficent"); | ||
192 | |||
193 | $res = NPTest->testCmd( "./$plugin -I $host_tcp_proxy -p $port_tcp_proxy -H $host_tls_http -S -j CONNECT:HEAD"); | ||
194 | is( $res->return_code, 0, "Proxy HTTP CONNECT works with override method"); | ||
195 | like($res->output, qr/HTTP OK:/, "Proxy HTTP CONNECT output sufficent"); | ||
196 | } | ||