blob: d47554b99a19bbfb7065e2a21e514e54f7b933b2 [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 SIZE => 10;
use constant TRIES => 20;
my $file = catfile Apache::Test::vars("documentroot"), "hooks", "cleanup";
plan tests => 2;
{
# this registers and performs cleanups, but we test whether the
# cleanup was run only in the next sub-test
my $location = "/TestHooks__cleanup";
my $expected = '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
# since Apache destroys the request rec after the logging has been
# finished, we have to give it some time to get there
# and fill in the file. (wait 0.25 .. 5 sec)
my $t = 0;
select undef, undef, undef, 0.25
until -e $file && -s _ == SIZE || $t++ == TRIES;
unless (-e $file) {
t_debug("can't find $file");
ok 0;
}
else {
open my $fh, $file or die "Can't open $file: $!";
my $received = <$fh> || '';
close $fh;
my $expected = "cleanup ok";
ok t_cmp($received, $expected, "verify req cleanup execution");
# XXX: while Apache::TestUtil fails to cleanup by itself
unlink $file;
}
}