Add memory leak test (#1990)

This commit is contained in:
Xavier Guimard 2020-04-22 15:03:17 +02:00
parent c9e7f3a1b0
commit edb8313837
2 changed files with 48 additions and 0 deletions

View File

@ -676,6 +676,7 @@ t/77-2F-Mail.t
t/78-2F-Upgrade-Many.t
t/78-2F-Upgrade.t
t/90-Translations.t
t/91-Memory-Leak.t
t/99-Dont-load-Dumper.t
t/99-pod.t
t/gpghome/key.asc

View File

@ -0,0 +1,47 @@
#!perl -w
use constant HAS_LEAKTRACE => eval { require Test::LeakTrace };
use Test::More HAS_LEAKTRACE
? ( tests => 4 )
: ( skip_all => 'require Test::LeakTrace' );
use Test::LeakTrace;
require 't/test-lib.pm';
require Lemonldap::NG::Common::Conf;
require Lemonldap::NG::Common::Conf::Backends::File;
my $ini = { logLevel => 'error', useSafejail => 0 };
foreach my $k ( keys %{$LLNG::Manager::Test::defaultIni} ) {
$ini->{$k} //= $LLNG::Manager::Test::defaultIni->{$k};
}
# Test without initialization
leaks_cmp_ok {
my $o = Lemonldap::NG::Common::PSGI::Cli::Lib->new;
my $p = Lemonldap::NG::Portal::Main->new();
}
'<', 1;
# Test local config
leaks_cmp_ok {
Lemonldap::NG::Common::Conf->new( $ini->{configStorage} )
->getLocalConf('portal');
}
'<', 1;
TODO: {
local $TODO = "Not yet fully cleaned";
# Test with initialization
Lemonldap::NG::Handler::PSGI::Main->init($ini);
Lemonldap::NG::Handler::PSGI::Main->checkConf(1);
leaks_cmp_ok {
my $p = Lemonldap::NG::Portal::Main->new();
$p->init($ini);
$p = undef;
@Lemonldap::NG::Handler::Main::_onReload = ();
#$ini = undef;
diag "After onReload clean\n";
}
'<', 1;
}