3 no warnings qw(redefine once);
8 use Test::More tests => 14;
13 require './l7directord';
17 eval { require DBI; };
22 eval { require DBD::Pg; };
27 eval { require DBD::mysql; };
32 #...............................................
37 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
38 todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
39 todo_skip 'not ready mysql response', 1;
42 my $sock = create_sock($port);
43 skip 'cannot create socket', 1 if !$sock;
44 my $response = ''; # TODO create mysql response
45 my $pid = prepare_child($sock, [$response]);
47 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
48 my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
49 my $got = check_mysql($v, $r);
50 is $got, $main::SERVICE_UP, 'check_mysql - connect ok';
55 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
56 todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
57 todo_skip 'not ready mysql response', 1;
60 my $sock = create_sock($port);
61 skip 'cannot create socket', 1 if !$sock;
62 my $response = ''; # TODO create mysql response
63 my $pid = prepare_child($sock, [$response]);
65 my $v = { server => {ip => '127.0.0.1'}, checkport => $port, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
66 my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
67 my $got = check_mysql($v, $r);
68 is $got, $main::SERVICE_UP, 'check_mysql - checkport connect ok';
73 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
74 todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
75 todo_skip 'not ready mysql response', 1;
78 my $sock = create_sock($port);
79 skip 'cannot create socket', 1 if !$sock;
80 my $response = ''; # TODO create mysql response
81 my $query_response = ''; # TODO create mysql query response
82 my $pid = prepare_child($sock, [$response, $query_response]);
84 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
85 my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', fail_counts => 0 };
86 my $got = check_mysql($v, $r);
87 is $got, $main::SERVICE_UP, 'check_mysql - request ok';
92 skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
93 skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
95 my $sock = create_sock($port);
96 skip 'cannot create socket', 1 if !$sock;
97 my $response = ''; # TODO create mysql response
98 my $pid = prepare_child($sock, [$response], 5);
100 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 1, login => 'postgres', passwd => '', database => 'template1' };
101 my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', fail_counts => 0 };
102 my $got = check_mysql($v, $r);
103 is $got, $main::SERVICE_DOWN, 'check_mysql - timeout';
108 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
109 todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
110 todo_skip 'not ready mysql response', 1;
113 my $sock = create_sock($port);
114 skip 'cannot create socket', 1 if !$sock;
115 my $response = ''; # TODO create mysql response
116 my $query_response = ''; # TODO create mysql query response (3rows)
117 my $pid = prepare_child($sock, [$response, $query_response]);
119 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
120 my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', receive => 3, fail_counts => 0 };
121 my $got = check_mysql($v, $r);
122 is $got, $main::SERVICE_UP, 'check_mysql - receive ok';
127 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
128 todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
129 todo_skip 'not ready mysql response', 1;
132 my $sock = create_sock($port);
133 skip 'cannot create socket', 1 if !$sock;
134 my $response = ''; # TODO create mysql response
135 my $query_response = ''; # TODO create mysql query response (3rows)
136 my $pid = prepare_child($sock, [$response, $query_response]);
138 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
139 my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', receive => 5, fail_counts => 0 };
140 my $got = check_mysql($v, $r);
141 is $got, $main::SERVICE_DOWN, 'check_mysql - receive error';
146 skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
147 skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
150 my $v = {negotiatetimeout => 1, checkport => $port };
151 my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
152 my $got = check_mysql($v, $r);
153 is $got, $main::SERVICE_DOWN, 'check_mysql - connect error';
157 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
158 todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
159 todo_skip 'not ready pgsql response', 1;
162 my $sock = create_sock($port);
163 skip 'cannot create socket', 1 if !$sock;
164 my $response = ''; # TODO create pgsql response
165 my $pid = prepare_child($sock, [$response]);
167 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
168 my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
169 my $got = check_pgsql($v, $r);
170 is $got, $main::SERVICE_UP, 'check_pgsql - connect ok';
175 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
176 todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
177 todo_skip 'not ready pgsql response', 1;
180 my $sock = create_sock($port);
181 skip 'cannot create socket', 1 if !$sock;
182 my $response = ''; # TODO create pgsql response
183 my $pid = prepare_child($sock, [$response]);
185 my $v = { server => {ip => '127.0.0.1'}, checkport => $port, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
186 my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
187 my $got = check_pgsql($v, $r);
188 is $got, $main::SERVICE_UP, 'check_pgsql - checkport connect ok';
193 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
194 todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
195 todo_skip 'not ready pgsql response', 1;
198 my $sock = create_sock($port);
199 skip 'cannot create socket', 1 if !$sock;
200 my $response = ''; # TODO create pgsql response
201 my $query_response = ''; # TODO create pgsql query response
202 my $pid = prepare_child($sock, [$response, $query_response]);
204 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
205 my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', fail_counts => 0 };
206 my $got = check_pgsql($v, $r);
207 is $got, $main::SERVICE_UP, 'check_pgsql - request ok';
212 skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
213 skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
215 my $sock = create_sock($port);
216 skip 'cannot create socket', 1 if !$sock;
217 my $response = ''; # TODO create pgsql response
218 my $pid = prepare_child($sock, [$response], 5);
220 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 1, login => 'postgres', passwd => '', database => 'template1' };
221 my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', fail_counts => 0 };
222 my $got = check_pgsql($v, $r);
223 is $got, $main::SERVICE_DOWN, 'check_pgsql - timeout';
228 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
229 todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
230 todo_skip 'not ready pgsql response', 1;
233 my $sock = create_sock($port);
234 skip 'cannot create socket', 1 if !$sock;
235 my $response = ''; # TODO create pgsql response
236 my $query_response = ''; # TODO create pgsql query response (3rows)
237 my $pid = prepare_child($sock, [$response, $query_response]);
239 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
240 my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', receive => 3, fail_counts => 0 };
241 my $got = check_pgsql($v, $r);
242 is $got, $main::SERVICE_UP, 'check_pgsql - receive ok';
247 todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
248 todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
249 todo_skip 'not ready pgsql response', 1;
252 my $sock = create_sock($port);
253 skip 'cannot create socket', 1 if !$sock;
254 my $response = ''; # TODO create pgsql response
255 my $query_response = ''; # TODO create pgsql query response (3rows)
256 my $pid = prepare_child($sock, [$response, $query_response]);
258 my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
259 my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', receive => 5, fail_counts => 0 };
260 my $got = check_pgsql($v, $r);
261 is $got, $main::SERVICE_DOWN, 'check_pgsql - receive error';
266 skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
267 skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
270 my $v = {negotiatetimeout => 1, checkport => $port };
271 my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
272 my $got = check_pgsql($v, $r);
273 is $got, $main::SERVICE_DOWN, 'check_pgsql - connect error';
276 #...............................................
282 my $sock = IO::Socket::INET->new(
284 LocalAddr => 'localhost',
296 my $s = $sock->accept;
297 if ($sleep) { sleep $sleep; }
315 *ld_log = \&__ld_log;
316 *get_status = \&__get_status;
319 return $main::SERVICE_UP;