blob: fcd9e74f1af6cfe477ea96269f057b47538b4e98 [file] [log] [blame]
# please insert nothing before this line: -*- mode: cperl; cperl-indent-level: 4; cperl-continued-statement-offset: 4; indent-tabs-mode: nil -*-
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use Apache::TestRequest;
use File::Spec::Functions qw(catfile catdir);
use constant TRIES => 20;
my $vars = Apache::Test::config->{vars};
my $dir = catdir $vars->{documentroot}, "hooks";
my $file = catfile $dir, "cleanup2";
plan tests => 2;
{
# cleanup, just to make sure we start with virgin state
if (-e $file) {
unlink $file or die "Couldn't remove $file";
}
# this registers and performs cleanups, but we test whether the
# cleanup was run only in the next sub-test
my $location = "/TestHooks__cleanup2";
my $expected = 'cleanup2 is ok';
my $received = GET_BODY $location;
ok t_cmp($received, $expected, "register req cleanup");
}
{
# this sub-tests checks that the cleanup stage was run successfully
# which is supposed to remove the file that was created
#
# since Apache destroys the request rec after the logging has been
# finished, we have to give it some time to get there
# and remove in the file. (wait 0.25 .. 5 sec)
my $t = 0;
select undef, undef, undef, 0.25 until !-e $file || $t++ == TRIES;
if (-e $file) {
t_debug("$file wasn't removed by the cleanup phase");
ok 0;
unlink $file; # cleanup
}
else {
ok 1;
}
}