[monitoring-plugins] check_http: add host header tests

Sven Nierlein git at monitoring-plugins.org
Fri Nov 11 10:40:11 CET 2016


 Module: monitoring-plugins
 Branch: master
 Commit: 9e02d0c3e6cc4c2cf08140dcff50fb280315bfc8
 Author: Sven Nierlein <sven at nierlein.de>
   Date: Fri Nov 11 10:32:19 2016 +0100
    URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=9e02d0c

check_http: add host header tests

Signed-off-by: Sven Nierlein <sven at nierlein.de>

---

 plugins/t/check_http.t | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/plugins/t/check_http.t b/plugins/t/check_http.t
index f514ca6..5a90f02 100644
--- a/plugins/t/check_http.t
+++ b/plugins/t/check_http.t
@@ -9,7 +9,7 @@ use Test::More;
 use POSIX qw/mktime strftime/;
 use NPTest;
 
-plan tests => 42;
+plan tests => 49;
 
 my $successOutput = '/OK.*HTTP.*second/';
 
@@ -64,6 +64,32 @@ cmp_ok( $res->return_code, '==', 2, "Webserver $hostname_invalid not valid" );
 # Is also possible to get a socket timeout if DNS is not responding fast enough
 like( $res->output, "/Unable to open TCP socket|Socket timeout after/", "Output OK");
 
+# host header checks
+$res = NPTest->testCmd("./check_http -v -H $host_tcp_http");
+like( $res->output, '/^Host: '.$host_tcp_http.'\s*$/ms', "Host Header OK" );
+
+$res = NPTest->testCmd("./check_http -v -H $host_tcp_http -p 80");
+like( $res->output, '/^Host: '.$host_tcp_http.'\s*$/ms', "Host Header OK" );
+
+$res = NPTest->testCmd("./check_http -v -H $host_tcp_http:8080 -p 80");
+like( $res->output, '/^Host: '.$host_tcp_http.':8080\s*$/ms', "Host Header OK" );
+
+$res = NPTest->testCmd("./check_http -v -H $host_tcp_http:8080 -p 80");
+like( $res->output, '/^Host: '.$host_tcp_http.':8080\s*$/ms', "Host Header OK" );
+
+SKIP: {
+        skip "No internet access", 3 if $internet_access eq "no";
+
+        $res = NPTest->testCmd("./check_http -v -H www.verisign.com -S");
+        like( $res->output, '/^Host: www.verisign.com\s*$/ms', "Host Header OK" );
+
+        $res = NPTest->testCmd("./check_http -v -H www.verisign.com:8080 -S -p 443");
+        like( $res->output, '/^Host: www.verisign.com:8080\s*$/ms', "Host Header OK" );
+
+        $res = NPTest->testCmd("./check_http -v -H www.verisign.com:443 -S -p 443");
+        like( $res->output, '/^Host: www.verisign.com\s*$/ms', "Host Header OK" );
+};
+
 SKIP: {
         skip "No host serving monitoring in index file", 7 unless $host_tcp_http2;
 



More information about the Commits mailing list