3 no warnings qw(redefine once);
8 use Test::More tests => 29;
12 require './l7directord';
15 our $ld_start_called = 0;
16 our $ld_stop_called = 0;
17 our $reread_config_called = 0;
18 our @check_child_process_args = ();
19 our @check_child_process_returns = ();
20 our @create_check_process_args = ();
21 our @create_check_process_returns = ();
22 our @sleep_and_check_signal_args = ();
23 our @sleep_and_check_signal_returns = ();
24 our $check_cfgfile_called = 0;
25 our @check_cfgfile_returns = ();
26 #...............................................
31 local @check_child_process_returns = ([]);
32 local @sleep_and_check_signal_returns = ('halt');
33 local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
34 $main::HEALTH_CHECK{id}{pid} = $$;
36 is $ld_start_called, 1, 'ld_main - start called';
37 is $reread_config_called, 0, 'ld_main - reread_config called';
38 is $check_cfgfile_called, 0, 'ld_main - check_cfgfile called';
39 is $ld_stop_called, 1, 'ld_main - stop called';
43 local @check_child_process_returns = (['id1', 'id2']);
44 local @sleep_and_check_signal_returns = ('halt');
45 local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
46 $main::HEALTH_CHECK{id}{pid} = $$;
48 is $ld_start_called, 1, 'ld_main - start called';
49 is $reread_config_called, 0, 'ld_main - reread_config called';
50 is $ld_stop_called, 1, 'ld_main - stop called';
51 is $check_cfgfile_called, 0, 'ld_main - check_cfgfile called';
52 is_deeply \@create_check_process_args, ['id1', 'id2'], 'ld_main - create_check_process args';
56 local @check_child_process_returns = (['id1', 'id2'], [], []);
57 local @sleep_and_check_signal_returns = (undef, undef , 'halt');
58 local @create_check_process_args = ();
59 local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
60 $main::HEALTH_CHECK{id}{pid} = $$;
62 is $ld_start_called, 1, 'ld_main - start called';
63 is $reread_config_called, 0, 'ld_main - reread_config called';
64 is $ld_stop_called, 1, 'ld_main - stop called';
65 is $check_cfgfile_called, 2, 'ld_main - check_cfgfile called';
66 is_deeply \@create_check_process_args, ['id1', 'id2'], 'ld_main - create_check_process args';
70 local @check_child_process_returns = (['id1', 'id2'], [], []);
71 local @sleep_and_check_signal_returns = (undef, 'reload' , 'halt');
72 local @create_check_process_args = ();
73 local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
74 $main::HEALTH_CHECK{id}{pid} = $$;
76 is $ld_start_called, 1, 'ld_main - start called';
77 is $reread_config_called, 1, 'ld_main - reread_config called';
78 is $ld_stop_called, 1, 'ld_main - stop called';
79 is $check_cfgfile_called, 1, 'ld_main - check_cfgfile called';
80 is_deeply \@create_check_process_args, ['id1', 'id2'], 'ld_main - create_check_process args';
84 local @check_child_process_returns = (['id1', 'id2'], [], []);
85 local @sleep_and_check_signal_returns = (undef, 'reload' , 'halt');
86 local @check_cfgfile_returns = (1);
87 local @create_check_process_args = ();
88 local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
89 $main::HEALTH_CHECK{id}{pid} = $$;
91 is $ld_start_called, 1, 'ld_main - start called';
92 is $reread_config_called, 2, 'ld_main - reread_config called';
93 is $ld_stop_called, 1, 'ld_main - stop called';
94 is $check_cfgfile_called, 1, 'ld_main - check_cfgfile called';
95 is_deeply \@create_check_process_args, ['id1', 'id2'], 'ld_main - create_check_process args';
98 #...............................................
103 %main::CONFIG = %main::GLOBAL;
104 %main::HEALTH_CHECK = ();
105 $ld_start_called = 0;
107 $reread_config_called = 0;
108 $check_cfgfile_called = 0;
111 *ld_start = \&__ld_start;
112 *check_child_process = \&__check_child_process;
113 *create_check_process = \&__create_check_process;
114 *sleep_and_check_signal = \&__sleep_and_check_signal;
115 *check_cfgfile = \&__check_cfgfile;
116 *reread_config = \&__reread_config;
117 *ld_stop = \&__ld_stop;
118 *ld_log = \&__ld_log;
123 sub __check_child_process {
124 push @check_child_process_args, @_;
125 my $return = shift @check_child_process_returns;
128 sub __create_check_process {
129 push @create_check_process_args, @_;
130 return shift @create_check_process_returns;
132 sub __sleep_and_check_signal {
133 push @sleep_and_check_signal_args, @_;
134 return shift @sleep_and_check_signal_returns;
136 sub __check_cfgfile {
137 $check_cfgfile_called++;
138 return shift @check_cfgfile_returns;
140 sub __reread_config {
141 $reread_config_called++;