OSDN Git Service

ソースツリー再構成中(ほぼOK?)
[ultramonkey-l7/ultramonkey-l7-v3.git] / l7directord / t / 12_main.t
1 use strict;
2 use warnings;
3 no warnings qw(redefine once);
4 use lib qw(t/lib lib);
5 use subs qw(print);
6 use Cwd;
7 use L7lib;
8 use Test::More tests => 29;
9
10 L7lib::chdir();
11 L7lib::comment_out();
12 require './l7directord';
13 override();
14
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 #...............................................
27 # test start
28 #   - ld_main
29 {
30     set_default();
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} = $$;
35     ld_main();
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';
40 }
41 {
42     set_default();
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} = $$;
47     ld_main();
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';
53 }
54 {
55     set_default();
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} = $$;
61     ld_main();
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';
67 }
68 {
69     set_default();
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} = $$;
75     ld_main();
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';
81 }
82 {
83     set_default();
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} = $$;
90     ld_main();
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';
96 }
97 # test end
98 #...............................................
99
100 L7lib::comment_in();
101
102 sub set_default {
103     %main::CONFIG = %main::GLOBAL;
104     %main::HEALTH_CHECK = ();
105     $ld_start_called = 0;
106     $ld_stop_called = 0;
107     $reread_config_called = 0;
108     $check_cfgfile_called = 0;
109 }
110 sub override {
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;
119 }
120 sub __ld_start {
121     $ld_start_called++;
122 }
123 sub __check_child_process {
124     push @check_child_process_args, @_;
125     my $return = shift @check_child_process_returns;
126     return @$return;
127 }
128 sub __create_check_process {
129     push @create_check_process_args, @_;
130     return shift @create_check_process_returns;
131 }
132 sub __sleep_and_check_signal {
133     push @sleep_and_check_signal_args, @_;
134     return shift @sleep_and_check_signal_returns;
135 }
136 sub __check_cfgfile {
137     $check_cfgfile_called++;
138     return shift @check_cfgfile_returns;
139 }
140 sub __reread_config {
141     $reread_config_called++;
142 }
143 sub __ld_stop {
144     $ld_stop_called++;
145 }
146 sub __ld_log {
147 }