3 no warnings qw(redefine once);
9 use Test::More tests => 11;
13 require './l7directord';
16 our @check_func_args = ();
17 our @check_func_returns = ();
18 our @get_status_args = ();
19 our @get_status_returns = ();
20 our @get_ip_port_args = ();
21 our @get_ip_port_returns = ();
22 our @get_check_func_args = ();
23 our @get_check_func_returns = ();
24 our @service_set_args = ();
25 our @service_set_returns = ();
26 our @check_connect_args = ();
27 our @check_connect_returns = ();
28 our @sleep_and_check_signal_args = ();
29 our @sleep_and_check_signal_returns = ();
30 our $health_check_called = 0;
31 #...............................................
39 is $@, "1\n", 'health_check - no virtual real list';
43 local @get_status_returns = ();
44 local @get_check_func_returns = ( \&check_func );
50 is $@, "2\n", 'health_check - no virtual real';
54 local @get_status_returns = ();
55 local @get_ip_port_returns = ('ip:port');
56 local @get_check_func_returns = ( \&check_func );
57 local @check_func_returns = ( $main::SERVICE_DOWN );
58 local @sleep_and_check_signal_returns = ( 'halt' );
59 local @service_set_args = ();
61 checktype => 'connect',
68 health_check([ [$v, $r] ]);
70 is $@, "0\n", 'health_check - no virtual real';
71 is_deeply \@service_set_args, [ [[$v,$r]], 'down' ], 'health_check - service set down';
75 local @get_status_returns = ();
76 local @get_ip_port_returns = ('ip:port');
77 local @get_check_func_returns = ( \&check_func );
78 local @check_func_returns = ( $main::SERVICE_UP,
83 local @sleep_and_check_signal_returns = ( 'run',
88 local @service_set_args = ();
90 checktype => 'connect',
97 health_check([ [$v, $r] ]);
99 is $@, "0\n", 'health_check - no virtual real';
100 is_deeply \@service_set_args, [ [[$v,$r]], 'up', [[$v,$r]], 'down' ], 'health_check - service set up and down';
101 is_deeply \@sleep_and_check_signal_args, [8,1,5,1,5,1,8,1], 'health_check - sleep time';
105 local @get_status_returns = ();
106 local @get_ip_port_returns = ('ip:port');
107 local @get_check_func_returns = ( \&check_func );
108 local @check_func_returns = ( $main::SERVICE_DOWN,
113 local @sleep_and_check_signal_returns = ( 'run',
118 local @service_set_args = ();
120 checktype => 'connect',
127 health_check([ [$v, $r] ]);
129 is $@, "0\n", 'health_check - no virtual real';
130 is_deeply \@service_set_args, [ [[$v,$r]], 'up' ], 'health_check - service set up and down';
131 is_deeply \@sleep_and_check_signal_args, [5,1,5,1,8,1,5,1], 'health_check - sleep time';
135 local $main::PROC_STAT{parent_pid} = 100000;
136 local @get_status_returns = ();
137 local @get_ip_port_returns = ('ip:port');
138 local @get_check_func_returns = ( \&check_func );
139 local @check_func_returns = ( $main::SERVICE_DOWN );
140 local @sleep_and_check_signal_returns = ( 'run' );
141 local @service_set_args = ();
143 checktype => 'connect',
150 health_check([ [$v, $r] ]);
152 is $@, "3\n", 'health_check - parent process is down';
155 #...............................................
160 push @check_func_args, @_;
161 return shift @check_func_returns;
164 $main::PROC_STAT{parent_pid} = $$;
165 @get_status_args = ();
166 @get_status_returns = ();
167 @get_check_func_args = ();
168 @get_check_func_returns = ();
169 @get_ip_port_args = ();
170 @get_ip_port_returns = ();
171 @service_set_args = ();
172 @service_set_returns = ();
173 @check_connect_args = ();
174 @check_connect_returns = ();
175 $health_check_called = 0;
176 @sleep_and_check_signal_args = ();
177 @sleep_and_check_signal_returns = ();
180 *POSIX::_exit = \&__POSIX__exit;
181 *get_status = \&__get_status;
182 *get_check_func = \&__get_check_func;
183 *service_set = \&__service_set;
184 *check_connect = \&__check_connect;
185 *sleep_and_check_signal = \&__sleep_and_check_signal;
186 *ld_log = \&__ld_log;
189 push @get_status_args, @_;
190 return shift @get_status_returns;
193 push @get_ip_port_args, @_;
194 return shift @get_ip_port_returns;
196 sub __get_check_func {
197 push @get_check_func_args, @_;
198 return shift @get_check_func_returns;
201 push @service_set_args, @_;
202 return shift @service_set_returns;
204 sub __check_connect {
205 push @get_status_args, @_;
206 return shift @get_status_returns;
208 sub __sleep_and_check_signal {
209 push @sleep_and_check_signal_args, @_;
210 return shift @sleep_and_check_signal_returns;