lemonldap-ng/lemonldap-ng-portal/xt/test-weaken-portal.t
2014-05-11 12:21:19 +00:00

54 lines
1.7 KiB
Perl
Executable File

#!/usr/bin/perl
use Test::More tests => 1;
use Lemonldap::NG::Portal;
SKIP: {
my $p;
eval 'use Test::Weaken qw(leaks)';
if ($@) {
skip 'Test::Weaken is not available', 1;
}
else {
my $tester = Test::Weaken::leaks(
{
constructor => sub {
Lemonldap::NG::Portal::Simple->new(
{
globalStorage => 'Apache::Session::File',
domain => 'example.com',
authentication => 'LDAP test=1',
userDB => 'LDAP test=1',
passwordDB => 'LDAP test=1',
user => '',
password => '',
}
);
},
destructor => sub {
my $p = shift;
undef $p;
undef $Lemonldap::NG::Portal::SharedConf::confCached;
},
}
);
if ($tester) {
my $unfreed_proberefs = $tester->unfreed_proberefs();
my $unfreed_count = @{$unfreed_proberefs};
printf STDERR
"Test 2: %d of %d original references were not freed\n",
$tester->unfreed_count(), $tester->probe_count();
print STDERR
"These are the probe references to the unfreed objects:\n";
require Data::Dumper;
for my $ix ( 0 .. $#{$unfreed_proberefs} ) {
print STDERR Data::Dumper->Dump( [ $unfreed_proberefs->[$ix] ],
["unfreed_$ix"] );
}
}
ok( !$tester );
}
}
done_testing;