Mercurial > hg > nginx-tests
comparison lib/Test/Nginx.pm @ 144:6e11354cae8a
Tests: rework stopping to make "open socket left" alerts visible.
Use SIGQUIT to stop nginx to make sure relevant checks are executed. Use
separate functions to stop nginx and daemons to make it possible to stop
nginx before daemons.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 15 Dec 2010 19:22:39 +0300 |
parents | 8b62dd9b8615 |
children | 33f6ec774efa |
comparison
equal
deleted
inserted
replaced
143:e8546edb0267 | 144:6e11354cae8a |
---|---|
44 } | 44 } |
45 | 45 |
46 sub DESTROY { | 46 sub DESTROY { |
47 my ($self) = @_; | 47 my ($self) = @_; |
48 $self->stop(); | 48 $self->stop(); |
49 $self->stop_daemons(); | |
49 if ($ENV{TEST_NGINX_CATLOG}) { | 50 if ($ENV{TEST_NGINX_CATLOG}) { |
50 system("cat $self->{_testdir}/error.log"); | 51 system("cat $self->{_testdir}/error.log"); |
51 } | 52 } |
52 } | 53 } |
53 | 54 |
194 } | 195 } |
195 | 196 |
196 sub stop() { | 197 sub stop() { |
197 my ($self) = @_; | 198 my ($self) = @_; |
198 | 199 |
200 return $self unless $self->{_started}; | |
201 | |
202 kill 'QUIT', `cat $self->{_testdir}/nginx.pid`; | |
203 wait; | |
204 | |
205 $self->{_started} = 0; | |
206 | |
207 return $self; | |
208 } | |
209 | |
210 sub stop_daemons() { | |
211 my ($self) = @_; | |
212 | |
199 while ($self->{_daemons} && scalar @{$self->{_daemons}}) { | 213 while ($self->{_daemons} && scalar @{$self->{_daemons}}) { |
200 my $p = shift @{$self->{_daemons}}; | 214 my $p = shift @{$self->{_daemons}}; |
201 kill 'TERM', $p; | 215 kill 'TERM', $p; |
202 wait; | 216 wait; |
203 } | 217 } |
204 | |
205 return $self unless $self->{_started}; | |
206 | |
207 kill 'TERM', `cat $self->{_testdir}/nginx.pid`; | |
208 wait; | |
209 | |
210 $self->{_started} = 0; | |
211 | 218 |
212 return $self; | 219 return $self; |
213 } | 220 } |
214 | 221 |
215 sub write_file($$) { | 222 sub write_file($$) { |