3 no warnings qw(redefine once);
8 use Test::More tests => 12;
13 require './l7directord';
16 #...............................................
21 my $sock = create_sock($port);
22 skip 'cannot create socket', 1 if !$sock;
23 my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
25 my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'GET'};
26 my $r = {url => "http://localhost:$port/", fail_counts => 0,
27 server => {ip => '127.0.0.1', port => $port }};
28 my $got = check_http($v, $r);
29 is $got, $main::SERVICE_UP, 'check_http - GET ok';
35 my $sock = create_sock($port);
36 skip 'cannot create socket', 1 if !$sock;
37 my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
39 my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
40 my $r = {url => "http://localhost:$port/", fail_counts => 0,
41 server => {ip => '127.0.0.1', port => $port }};
42 my $got = check_http($v, $r);
43 is $got, $main::SERVICE_UP, 'check_http - HEAD ok';
50 my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
51 my $r = {url => "http//localhost:$port/", fail_counts => 0,
52 server => {ip => '127.0.0.1', port => $port }};
53 my $got = check_http($v, $r);
54 is $got, $main::SERVICE_DOWN, 'check_http - URL error';
59 my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
60 my $r = {url => "http://localhost:$port/", fail_counts => 0,
61 server => {ip => '127.0.0.1', port => $port }};
62 my $got = check_http($v, $r);
63 is $got, $main::SERVICE_DOWN, 'check_http - cannot connect';
67 my $sock = create_sock($port);
68 skip 'cannot create socket', 1 if !$sock;
69 my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n", 2);
71 my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
72 my $r = {url => "http://localhost:$port/", fail_counts => 0,
73 server => {ip => '127.0.0.1', port => $port }};
74 my $got = check_http($v, $r);
75 is $got, $main::SERVICE_DOWN, 'check_http - timeout';
81 my $sock = create_sock($port);
82 skip 'cannot create socket', 1 if !$sock;
83 my $pid = prepare_child($sock, "HTTP/1.0 500 Internal Server Error\r\n\r\n");
85 my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
86 my $r = {url => "http://localhost:$port/", fail_counts => 0,
87 server => {ip => '127.0.0.1', port => $port }};
88 my $got = check_http($v, $r);
89 is $got, $main::SERVICE_DOWN, 'check_http - error response';
96 todo_skip 'not ready https response', 1;
98 my $sock = create_sock($port);
99 skip 'cannot create socket', 1 if !$sock;
100 my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
102 my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'GET'};
103 my $r = {url => "https://localhost:$port/", fail_counts => 0,
104 server => {ip => '127.0.0.1', port => $port }};
105 my $got = check_http($v, $r);
106 is $got, $main::SERVICE_UP, 'check_http - GET ok (https)';
112 todo_skip 'not ready https response', 1;
114 my $sock = create_sock($port);
115 skip 'cannot create socket', 1 if !$sock;
116 my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
118 my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
119 my $r = {url => "https://localhost:$port/", fail_counts => 0,
120 server => {ip => '127.0.0.1', port => $port }};
121 my $got = check_http($v, $r);
122 is $got, $main::SERVICE_UP, 'check_http - HEAD ok (https)';
129 my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
130 my $r = {url => "https//localhost:$port/", fail_counts => 0,
131 server => {ip => '127.0.0.1', port => $port }};
132 my $got = check_http($v, $r);
133 is $got, $main::SERVICE_DOWN, 'check_http - URL error (https)';
138 my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
139 my $r = {url => "https://localhost:$port/", fail_counts => 0,
140 server => {ip => '127.0.0.1', port => $port }};
141 my $got = check_http($v, $r);
142 is $got, $main::SERVICE_DOWN, 'check_http - cannot connect (https)';
146 todo_skip 'not ready https response', 1;
148 my $sock = create_sock($port);
149 skip 'cannot create socket', 1 if !$sock;
150 my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n", 2);
152 my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
153 my $r = {url => "https://localhost:$port/", fail_counts => 0,
154 server => {ip => '127.0.0.1', port => $port }};
155 my $got = check_http($v, $r);
156 is $got, $main::SERVICE_DOWN, 'check_http - timeout (https)';
162 todo_skip 'not ready https response', 1;
164 my $sock = create_sock($port);
165 skip 'cannot create socket', 1 if !$sock;
166 my $pid = prepare_child($sock, "HTTP/1.0 500 Internal Server Error\r\n\r\n");
168 my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
169 my $r = {url => "https://localhost:$port/", fail_counts => 0,
170 server => {ip => '127.0.0.1', port => $port }};
171 my $got = check_http($v, $r);
172 is $got, $main::SERVICE_DOWN, 'check_http - error response (https)';
177 #...............................................
183 my $sock = IO::Socket::INET->new(
185 LocalAddr => 'localhost',
197 my $s = $sock->accept;
199 if ($sleep) { sleep $sleep; }
214 *ld_log = \&__ld_log;
215 *get_status = \&__get_status;
218 return $main::SERVICE_UP;