Parallel tests

This commit is contained in:
Xavier Guimard 2019-08-29 10:04:06 +02:00
parent 9379188000
commit aeff014f79
39 changed files with 1931 additions and 127 deletions

View File

@ -15,6 +15,7 @@ DESTDIR=
USEDEBIANLIBS=no
PROD=$(USEDEBIANLIBS)
USEEXTERNALLIBS=no
PARA=$(shell perl -000 -e 'print ( "$(MAKEFLAGS)" =~ /-j(\d+)/ ? "j$1:c" : "")')
# Perl options
#PERLOPTIONS="INSTALLDIRS=vendor"
@ -379,13 +380,13 @@ manager: manager_conf handler
test: all common_test handler_test portal_test manager_test
common_test: common
@$(MAKE) -C ${SRCCOMMONDIR} test
@HARNESS_OPTIONS=$(PARA) $(MAKE) -C ${SRCCOMMONDIR} test
handler_test: handler
@$(MAKE) -C ${SRCHANDLERDIR} test
portal_test: portal
@$(MAKE) -C ${SRCPORTALDIR} test
@HARNESS_OPTIONS=$(PARA) $(MAKE) -C ${SRCPORTALDIR} test
manager_test: manager
@$(MAKE) -C ${SRCMANAGERDIR} test

View File

@ -1,2 +1,3 @@
.proverc
t
lemonldap-ng.ini

View File

@ -1,3 +1,5 @@
.prove
.proverc
t
site/templates
site/htdocs/static/common/icons/ok.png

6
debian/tests/runner vendored
View File

@ -24,6 +24,9 @@ for LLLIB in $LIST; do
fi
done
cd $LLSOURCEDIR/$LLLIB
cp .proverc .proverc.$$
echo '--state=slow' >> $LLSOURCEDIR/$LLLIB/.proverc
echo '--j 8' >> $LLSOURCEDIR/$LLLIB/.proverc
SKIPLIST=debian/tests/pkg-perl/SKIP
SKIPTMP=$(mktemp)
@ -44,6 +47,9 @@ for LLLIB in $LIST; do
if [ $EXITCODE = 0 ]; then EXITCODE=$RET; fi
fi
done
cd $LLSOURCEDIR/$LLLIB
pwd
mv -f .proverc.$$ .proverc
cd $LLSOURCEDIR
rm -rf $LLSOURCEDIR/$LLLIB/debian

View File

@ -19,7 +19,7 @@ BEGIN {
my $h;
@ARGV = ("help=groups");
unlink 't/lmConf.sql';
unlink 't/cdbiConf.sql';
SKIP: {
eval { require DBI; };
@ -29,7 +29,7 @@ SKIP: {
ok(
$h = new Lemonldap::NG::Common::Conf( {
type => 'CDBI',
dbiChain => "DBI:SQLite:dbname=t/lmConf.sql",
dbiChain => "DBI:SQLite:dbname=t/cdbiConf.sql",
dbiUser => '',
dbiPassword => '',
}
@ -69,6 +69,6 @@ SKIP: {
ok( $cfg->{test} eq $test[$i]->{test}, "Test $i is restored" );
}
unlink 't/lmConf.sql';
unlink 't/cdbiConf.sql';
}

View File

@ -19,7 +19,7 @@ BEGIN {
my $h;
@ARGV = ("help=groups");
unlink 't/lmConf.sql';
unlink 't/rdbiConf.sql';
SKIP: {
eval { require DBI; };
@ -29,7 +29,7 @@ SKIP: {
ok(
$h = new Lemonldap::NG::Common::Conf( {
type => 'RDBI',
dbiChain => "DBI:SQLite:dbname=t/lmConf.sql",
dbiChain => "DBI:SQLite:dbname=t/rdbiConf.sql",
dbiUser => '',
dbiPassword => '',
}
@ -70,6 +70,6 @@ SKIP: {
ok( $cfg->{test} eq $test[$i]->{test}, "Test $i is restored" );
}
unlink 't/lmConf.sql';
unlink 't/rdbiConf.sql';
}

View File

@ -3,6 +3,7 @@
use strict;
use 5.10.0;
use POSIX 'strftime';
use Data::Dumper;
use_ok('Lemonldap::NG::Common::PSGI::Cli::Lib');
our $client;

View File

@ -26,9 +26,6 @@ ok( $res = &client->_get( '/confs/2/sfExtra', 'application/json' ),
'Get combModules' );
ok( $resBody = from_json( $res->[2]->[0] ), "Result body contains JSON text" );
use Data::Dumper;
print Dumper($resBody);
count(6);
done_testing( count() );

1766
lemonldap-ng-portal/.prove Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,14 +7,14 @@ require 't/test-lib.pm';
my $res;
my $maintests = 8;
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
SKIP: {
eval { require DBI; require DBD::SQLite; };
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,cn text)');
$dbh->do(
"INSERT INTO users VALUES ('french','french','Frédéric Accents')");
@ -25,7 +25,7 @@ SKIP: {
useSafeJail => 1,
authentication => 'DBI',
userDB => 'Same',
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',
@ -83,6 +83,5 @@ SKIP: {
clean_sessions();
}
eval { unlink 't/userdb.db' };
count($maintests);
done_testing( count() );

View File

@ -9,7 +9,7 @@ require 't/test-lib.pm';
my $res;
my $maintests = 6;
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
SKIP: {
eval
@ -90,7 +90,7 @@ SKIP: {
}
`;
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
@ -112,7 +112,7 @@ SKIP: {
useSafeJail => 1,
authentication => 'DBI',
userDB => 'Same',
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',
@ -200,6 +200,5 @@ SKIP: {
clean_sessions();
}
eval { unlink 't/userdb.db' };
count($maintests);
done_testing( count() );

View File

@ -7,14 +7,14 @@ require 't/test-lib.pm';
my $res;
my $maintests = 3;
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
SKIP: {
eval { require DBI; require DBD::SQLite; };
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dwho','dwho','Doctor who')");
my $client = LLNG::Manager::Test->new( {
@ -23,7 +23,7 @@ SKIP: {
useSafeJail => 1,
authentication => 'DBI',
userDB => 'Same',
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',
@ -78,6 +78,5 @@ SKIP: {
$client->logout($id);
clean_sessions();
}
eval { unlink 't/userdb.db' };
count($maintests);
done_testing( count() );

View File

@ -7,7 +7,7 @@ require 't/test-lib.pm';
my $res;
my $maintests = 10;
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
SKIP: {
eval { require DBI; require DBD::SQLite; };
@ -16,7 +16,7 @@ SKIP: {
}
skip 'LLNGTESTLDAP is not set', $maintests unless ( $ENV{LLNGTESTLDAP} );
require 't/test-ldap.pm';
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dwho','dwho','Doctor who')");
@ -36,7 +36,7 @@ SKIP: {
slave => 'Slave;LDAP;LDAP',
},
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',
@ -114,7 +114,6 @@ SKIP: {
clean_sessions();
}
count($maintests);
eval { unlink 't/userdb.db' };
stopLdapServer() if $ENV{LLNGTESTLDAP};
clean_sessions();
done_testing( count() );

View File

@ -82,7 +82,6 @@ SKIP: {
}
# Try to get captcha value
my ( $ts, $captcha );
ok( $ts = getCache()->get($token), ' Found token session' );
$ts = eval { JSON::from_json($ts) };
ok( $captcha = $ts->{captcha}, ' Found captcha value' );

View File

@ -10,14 +10,14 @@ BEGIN {
my $res;
my $maintests = 21;
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
SKIP: {
eval { require DBI; require DBD::SQLite; require GSSAPI; };
if ($@) {
skip 'Missing dependencies', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dwho','dwho','Doctor who')");
@ -42,7 +42,7 @@ SKIP: {
'7_Kerberos' => 'Kerberos;Null;Null',
},
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',
@ -69,53 +69,62 @@ SKIP: {
ok( $res->[2]->[0] =~ /7_Kerberos/, '7_Kerberos displayed' );
ok( $res->[2]->[0] =~ qr%<img src="/static/common/modules/SSL.png"%,
'Found 5_ssl Logo' )
or print STDERR Dumper( $res->[2]->[0] );
or explain( $res->[2]->[0], '<img src="/static/common/modules/SSL.png' );
ok( $res->[2]->[0] =~ qr%img src="/static/common/modules/Apache.png"%,
'Found 6_FakeCustom Logo' )
or print STDERR Dumper( $res->[2]->[0] );
or
explain( $res->[2]->[0], '<img src="/static/common/modules/Apache.png' );
ok( $res->[2]->[0] =~ qr%<img src="/static/common/modules/Kerberos.png"%,
'Found 7_Kerberos Logo' )
or print STDERR Dumper( $res->[2]->[0] );
or explain( $res->[2]->[0],
'<img src="/static/common/modules/Kerberos.png' );
ok(
$res->[2]->[0] =~
m%<form id="lformDemo" action="https://test.example.com"%,
' Redirect URL found'
) or print STDERR Dumper( $res->[2]->[0] );
)
or explain( $res->[2]->[0],
'<form id="lformDemo" action="https://test.example.com"' );
ok(
$res->[2]->[0] =~
m%<script type="application/init">\{"sslHost":"https://authssl.example.com:19876"\}</script>%,
m%<script type="application/init">\s*\{"sslHost":"https://authssl.example.com:19876"\}\s*</script>%s,
' SSL AJAX URL found'
) or print STDERR Dumper( $res->[2]->[0] );
)
or
explain( $res->[2]->[0], '<script type="application/init">\{"sslHost"' );
expectForm( $res, '#', undef, 'kerberos' );
ok(
$res->[2]->[0] =~ m%<input type="hidden" name="kerberos" value="0" />%,
'Found hidden attribut "kerberos" with value="0"'
) or print STDERR Dumper( $res->[2]->[0] );
) or explain( $res->[2]->[0], '<input type="hidden" name="kerberos"' );
ok( $res->[2]->[0] =~ /kerberosChoice\.(?:min\.)?js/,
'Get Kerberos javascript' )
or print STDERR Dumper( $res->[2]->[0] );
or explain( $res->[2]->[0], 'kerberosChoice.(min.)?js' );
ok(
$res->[2]->[0] =~
m%<form id="lformKerberos" action="#" method="post" class="login Kerberos">%,
' Redirect URL found'
) or print STDERR Dumper( $res->[2]->[0] );
) or explain( $res->[2]->[0], '<form id="lformKerberos"' );
ok( $res->[2]->[0] =~ /sslChoice\.(?:min\.)?js/,
'Get sslChoice javascript' )
or print STDERR Dumper( $res->[2]->[0] );
or explain( $res->[2]->[0], 'sslChoice.(min.)?js' );
ok(
$res->[2]->[0] =~
m%<form id="lformSSL" action="#" method="post" class="login SSL">%,
' Action # found'
) or print STDERR Dumper( $res->[2]->[0] );
) or explain( $res->[2]->[0], '<form id="lformSSL"' );
my $header = getHeader( $res, 'Content-Security-Policy' );
ok( $header =~ m%;form-action \'self\' https://test.example.com;%,
' CSP URL found' )
or print STDERR Dumper( $res->[1] );
or
explain( $res->[1], 'form-action \'self\' https://test.example.com;' );
ok( $res->[2]->[0] !~ /4_demo/, '4_Demo not displayed' );
ok(
$res->[2]->[0] =~ qr%<img src="/static/common/logos/logo_llng_old.png"%,
'Found custom Main Logo'
) or print STDERR Dumper( $res->[2]->[0] );
)
or explain( $res->[2]->[0],
'<img src="/static/common/logos/logo_llng_old.png"' );
# Test SQL
my $postString = 'user=dwho&password=dwho&test=2_sql';
@ -135,6 +144,5 @@ m%<form id="lformKerberos" action="#" method="post" class="login Kerberos">%,
clean_sessions();
}
count($maintests);
eval { unlink 't/userdb.db' };
clean_sessions();
done_testing( count() );

View File

@ -30,7 +30,7 @@ my $pdata = 'lemonldappdata=' . expectCookie( $res, 'lemonldappdata' );
ok(
$res->[2]->[0] =~
m%<script type="application/init">\{"sslHost":"https://authssl.example.com:19876"\}</script>%,
m%<script type="application/init">\s*\{"sslHost":"https://authssl.example.com:19876"\}\s*</script>%s,
' SSL AJAX URL found'
) or print STDERR Dumper( $res->[2]->[0] );
ok( $res->[2]->[0] =~ qr%<img src="/static/common/modules/SSL.png"%,

View File

@ -222,6 +222,7 @@ SKIP: {
);
expectOK($res);
expectAutoPost( $res, 'auth.idp.com', '/saml/singleSignOn', 'SAMLRequest' );
unlink $file;
}
count($maintests);

View File

@ -10,7 +10,7 @@ BEGIN {
require 't/test-lib.pm';
require 't/saml-lib.pm';
}
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
my $maintests = 13;
my $debug = 'error';
@ -36,7 +36,7 @@ SKIP: {
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do(
'CREATE TABLE users (user text,password text,name text,uid text,cn text,mail text)'
);
@ -172,7 +172,6 @@ SKIP: {
}
count($maintests);
eval { unlink 't/userdb.db' };
done_testing( count() );
sub switch {
@ -196,7 +195,7 @@ sub issuer {
demo => 'Demo;Demo;Demo',
sql => 'DBI;DBI;DBI',
},
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',

View File

@ -9,7 +9,7 @@ use MIME::Base64;
BEGIN {
require 't/test-lib.pm';
}
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
my $maintests = 14;
my $debug = 'error';
@ -67,7 +67,7 @@ SKIP: {
}
# Build SQL DB
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do(
'CREATE TABLE users (user text,password text,name text,uid text,cn text,mail text)'
);
@ -146,7 +146,6 @@ qr%<img src="http://auth.sp.com/static/common/icons/sfa_manager.png" class="mr-2
clean_sessions();
count($maintests);
eval { unlink 't/userdb.db' };
done_testing( count() );
sub switch {
@ -190,7 +189,7 @@ sub sp {
cas => 'CAS;CAS;Null',
sql => 'DBI;DBI;DBI',
},
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',

View File

@ -9,7 +9,7 @@ use MIME::Base64;
BEGIN {
require 't/test-lib.pm';
}
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
my $maintests = 23;
my $debug = 'error';
@ -67,7 +67,7 @@ SKIP: {
}
# Build SQL DB
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do(
'CREATE TABLE users (user text,password text,name text,uid text,cn text,mail text)'
);
@ -301,7 +301,6 @@ SKIP: {
}
count($maintests);
eval { unlink 't/userdb.db' };
done_testing( count() );
sub switch {
@ -325,7 +324,7 @@ sub issuer {
demo => 'Demo;Demo;Demo',
sql => 'DBI;DBI;DBI',
},
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',

View File

@ -14,7 +14,7 @@ my $debug = 'error';
my $maintests = 18;
my ( $op, $rp, $res );
my %handlerOR = ( op => [], rp => [] );
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
LWP::Protocol::PSGI->register(
sub {
@ -72,7 +72,7 @@ SKIP: {
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dwho','dwho','Doctor who')");
@ -241,7 +241,6 @@ SKIP: {
#print STDERR Dumper($res);
count($maintests);
eval { unlink 't/userdb.db' };
done_testing( count() );
sub switch {
@ -266,7 +265,7 @@ sub op {
demo => 'Demo;Demo;Demo',
sql => 'DBI;DBI;DBI',
},
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',

View File

@ -1,5 +1,6 @@
use lib 'inc';
use strict;
use File::Temp 'tempdir';
use IO::String;
use JSON;
use MIME::Base64;
@ -9,6 +10,8 @@ our $debug = 'error';
my ( $p, $res, $spId );
$| = 1;
$LLNG::TMPDIR = tempdir( 'tmpSessionXXXXX', DIR => 't/sessions', CLEANUP => 1 );
require 't/separate-handler.pm';
require "t/test-lib.pm";

View File

@ -41,7 +41,8 @@ SKIP: {
}
);
ok( $res = $client->_get( '/', accept => 'text/html' ), 'Simple access' );
ok( $res->[2]->[0] =~ /script.*kerberos\.js/s, 'Found Kerberos JS' );
ok( $res->[2]->[0] =~ /script.*kerberos\.js/s, 'Found Kerberos JS' )
or explain( $res->[2]->[0], 'script.*kerberos.js' );
my ( $host, $url, $query ) = expectForm( $res, '#' );
# TODO

View File

@ -8,14 +8,14 @@ my $res;
my $maintests = 0;
my $client;
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
SKIP: {
eval { require DBI; require DBD::SQLite; };
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dvador','dvador','Test user 1')");
$dbh->do("INSERT INTO users VALUES ('rtyler','rtyler','Test user 1')");
@ -43,7 +43,6 @@ SKIP: {
}
count($maintests);
clean_sessions();
eval { unlink 't/userdb.db' };
done_testing( count() );
sub try {
@ -86,7 +85,7 @@ sub iniCmb {
},
},
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',

View File

@ -8,14 +8,14 @@ my $res;
my $maintests = 0;
my $client;
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
SKIP: {
eval { require DBI; require DBD::SQLite; };
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dvador','dvador','Test user 1')");
$dbh->do("INSERT INTO users VALUES ('rtyler','rtyler','Test user 1')");
@ -26,7 +26,6 @@ SKIP: {
}
count($maintests);
clean_sessions();
eval { unlink 't/userdb.db' };
done_testing( count() );
sub try {
@ -62,7 +61,7 @@ sub iniCmb {
for => 0,
type => 'DBI',
over => {
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',

View File

@ -8,14 +8,14 @@ my $res;
my $maintests = 0;
my $client;
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
SKIP: {
eval { require DBI; require DBD::SQLite; };
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dvador','dvador','Test user 1')");
$dbh->do("INSERT INTO users VALUES ('rtyler','rtyler','Test user 1')");
@ -41,7 +41,6 @@ SKIP: {
}
count($maintests);
clean_sessions();
eval { unlink 't/userdb.db' };
done_testing( count() );
sub try {
@ -89,7 +88,7 @@ sub iniCmb {
},
},
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',

View File

@ -8,14 +8,14 @@ my $res;
my $maintests = 3;
my $client;
eval { unlink 't/userdb.db' };
my $userdb = tempdb();
SKIP: {
eval { require DBI; require DBD::SQLite; };
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dvador','dvador','Test user 1')");
$dbh->do("INSERT INTO users VALUES ('rtyler','rtyler','Test user 1')");
@ -49,7 +49,6 @@ SKIP: {
}
count($maintests);
clean_sessions();
eval { unlink 't/userdb.db' };
done_testing( count() );
sub try {
@ -92,7 +91,7 @@ sub iniCmb {
},
},
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',

View File

@ -3,10 +3,9 @@ use strict;
use IO::String;
my $res;
my $file = 't/notifications.db';
my $maintests = 9;
eval { unlink $file };
require 't/test-lib.pm';
my $file = tempdb();
SKIP: {
eval { require DBI; require DBD::SQLite; };

View File

@ -5,7 +5,7 @@ use IO::String;
require 't/test-lib.pm';
my $res;
my $file = 't/20160530_dwho_dGVzdHJlZg==.json';
my $file = "$main::tmpDir/20160530_dwho_dGVzdHJlZg==.json";
open F, "> $file" or die($!);
print F '[
@ -28,7 +28,7 @@ my $client = LLNG::Manager::Test->new( {
notification => 1,
notificationStorage => 'File',
notificationStorageOptions => {
dirName => 't'
dirName => $main::tmpDir
},
oldNotifFormat => 0,
requireToken => 1,

View File

@ -5,7 +5,7 @@ use IO::String;
require 't/test-lib.pm';
my $res;
my $file = 't/20160530_dwho_dGVzdHJlZg==.json';
my $file = "$main::tmpDir/20160530_dwho_dGVzdHJlZg==.json";
open F, "> $file" or die($!);
print F '[
@ -27,7 +27,7 @@ my $client = LLNG::Manager::Test->new( {
useSafeJail => 1,
notification => 1,
notificationStorage => 'File',
notificationStorageOptions => { dirName => 't' },
notificationStorageOptions => { dirName => $main::tmpDir },
oldNotifFormat => 0,
portalMainLogo => 'common/logos/logo_llng_old.png',
}

View File

@ -6,8 +6,6 @@ BEGIN {
require 't/test-lib.pm';
}
eval { unlink 't/20160530_dwho_dGVzdHJlZg==.json' };
my $json = '{
"date": "2016-05-30",
"reference": "testref",
@ -56,7 +54,7 @@ my $client = LLNG::Manager::Test->new( {
notificationWildcard => 'everyone',
notificationStorage => 'File',
notificationStorageOptions => {
dirName => 't'
dirName => $main::tmpDir,
},
}
}
@ -213,7 +211,5 @@ expectOK($res);
my $id = expectCookie($res);
expectForm( $res, undef, '/notifback', 'reference1x1', 'url' );
eval { unlink 't/20160530_dwho_dGVzdHJlZg==.json' };
clean_sessions();
done_testing( count() );

View File

@ -3,13 +3,12 @@ use strict;
use IO::String;
my $res;
my $file = 't/notifications.db';
my $maintests = 8;
#my $maintests = 9;
eval { unlink $file };
require 't/test-lib.pm';
my $file = tempdb();
SKIP: {
eval {
@ -142,9 +141,6 @@ qq{INSERT INTO notifications VALUES ('dwho','testref2','2016-05-30 00:00:00','<?
ok( $i == 2, 'Notification was deleted' );
clean_sessions();
eval { unlink $file };
}
count($maintests);

View File

@ -5,7 +5,7 @@ use IO::String;
require 't/test-lib.pm';
my $res;
my $file = 't/20160530_dwho_dGVzdHJlZg==.xml';
my $file = "$main::tmpDir/20160530_dwho_dGVzdHJlZg==.xml";
my $maintests = 15;
SKIP: {
@ -31,7 +31,7 @@ SKIP: {
useSafeJail => 1,
notification => 1,
notificationStorage => 'File',
notificationStorageOptions => { dirName => 't' },
notificationStorageOptions => { dirName => $main::tmpDir },
oldNotifFormat => 1,
portalMainLogo => 'common/logos/logo_llng_old.png',
}

View File

@ -43,8 +43,6 @@ LWP::Protocol::PSGI->register(
}
);
eval { unlink 't/20160530_dwho_dGVzdHJlZg==.xml' };
my $xml = '<?xml version="1.0" encoding="UTF-8"?>
<root><notification uid="dwho" date="2016-05-30" reference="testref">
<title>Test title</title>
@ -73,7 +71,7 @@ SKIP: {
notificationServer => 1,
notificationStorage => 'File',
notificationStorageOptions => {
dirName => 't'
dirName => $main::tmpDir
},
oldNotifFormat => 1,
}
@ -116,8 +114,6 @@ SKIP: {
}
eval { unlink 't/20160530_dwho_dGVzdHJlZg==.xml' };
count($maintests);
clean_sessions();
done_testing( count() );

View File

@ -35,7 +35,8 @@ SKIP: {
my $token;
ok( $token = $1, ' Token value is defined' );
ok( $res->[2]->[0] =~ m#<img src="data:image/png;base64#,
' Captcha image inserted' );
' Captcha image inserted' )
or explain( $res->[2]->[0], '<img src="data:image/png;base64' );
# Try to get captcha value

View File

@ -14,7 +14,7 @@ my $maintests = 17;
my $mailSend = 0;
my $mail2 = 0;
unlink 't/userdb.db';
my $userdb = tempdb();
SKIP: {
eval
@ -26,7 +26,7 @@ SKIP: {
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do(
'CREATE TABLE users (user text,password text,name text, mail text)');
$dbh->do(
@ -47,7 +47,7 @@ SKIP: {
passwordDB => 'Choice',
captcha_mail_enabled => 0,
portalDisplayResetPassword => 1,
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',
@ -146,7 +146,6 @@ SKIP: {
}
eval { unlink 't/userdb.db' };
count($maintests);
clean_sessions();
done_testing( count() );

View File

@ -2,11 +2,12 @@ use Test::More;
use strict;
use IO::String;
my $userdb;
BEGIN {
eval {
unlink 't/userdb.db';
require 't/test-lib.pm';
require 't/smtp.pm';
$userdb = tempdb();
};
}
@ -26,7 +27,7 @@ SKIP: {
if ($@) {
skip 'DBD::SQLite not found', $maintests;
}
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
my $dbh = DBI->connect("dbi:SQLite:dbname=$userdb");
$dbh->do(
'CREATE TABLE users (user text,password text,name text, mail text)');
$dbh->do(
@ -43,7 +44,7 @@ SKIP: {
passwordDB => 'DBI',
captcha_mail_enabled => 0,
portalDisplayResetPassword => 1,
dbiAuthChain => 'dbi:SQLite:dbname=t/userdb.db',
dbiAuthChain => "dbi:SQLite:dbname=$userdb",
dbiAuthUser => '',
dbiAuthPassword => '',
dbiAuthTable => 'users',
@ -168,7 +169,6 @@ SKIP: {
#print STDERR Dumper($query);
}
eval { unlink 't/userdb.db' };
count($maintests);
clean_sessions();
done_testing( count() );

View File

@ -31,6 +31,12 @@ sub init {
type => 'File',
dirName => 't',
},
globalStorageOptions => {
Directory => $LLNG::TMPDIR,
LockDirectory => "$LLNG::TMPDIR/lock",
generateModule =>
'Lemonldap::NG::Common::Apache::Session::Generate::SHA256',
},
localSessionStorage => 'Cache::FileCache',
localSessionStorageOptions => {
namespace => 'lemonldap-ng-session',

View File

@ -55,6 +55,7 @@ C<LLNG::Manager::Test::_post()> call I<(see below)>.
use strict;
use Data::Dumper;
use File::Find;
use LWP::UserAgent;
use URI::Escape;
use Lemonldap::NG::Common::FormEncode;
@ -73,6 +74,13 @@ $Data::Dumper::Sortkeys = 1;
$Data::Dumper::Useperl = 1;
my $ini;
use File::Temp 'tempfile', 'tempdir';
our $tmpDir = $LLNG::TMPDIR
|| tempdir( 'tmpSessionXXXXX', DIR => 't/sessions', CLEANUP => 1 );
mkdir "$tmpDir/lock";
mkdir "$tmpDir/saml";
mkdir "$tmpDir/saml/lock";
=head4 count($inc)
Returns number of tests done. Increment test number if an argument is given
@ -107,10 +115,7 @@ Clean sessions created during tests
=cut
sub clean_sessions {
opendir D, 't/sessions' or die $!;
foreach ( grep { /^[^\.]/ } readdir(D) ) {
unlink "t/sessions/$_", "t/sessions/lock/Apache-Session-$_.lock";
}
find( sub { unlink if -f }, $tmpDir );
foreach my $dir (qw(t/sessions/lock t/sessions/saml/lock t/sessions/saml)) {
if ( -d $dir ) {
opendir D, $dir or die $!;
@ -119,13 +124,11 @@ sub clean_sessions {
}
}
}
my $cache = getCache();
$cache->clear;
}
sub count_sessions {
my $dir = shift;
$dir ||= 't/sessions';
$dir ||= $tmpDir;
my $nbr = 0;
opendir D, $dir or die $!;
@ -139,7 +142,7 @@ sub getCache {
require Cache::FileCache;
return Cache::FileCache->new( {
namespace => 'lemonldap-ng-session',
cache_root => 't/',
cache_root => $tmpDir,
cache_depth => 0,
}
);
@ -465,6 +468,16 @@ sub getUser {
return getHeader( $resp, 'Lm-Remote-User' );
}
=head4 tempdb
Return a temporary file named XXXX.db
=cut
sub tempdb {
return "$tmpDir/userdb.db";
}
=head2 LLNG::Manager::Test Class
=cut
@ -484,16 +497,40 @@ our $defaultIni = {
localSessionStorage => 'Cache::FileCache',
localSessionStorageOptions => {
namespace => 'lemonldap-ng-session',
cache_root => 't/',
cache_root => $tmpDir,
cache_depth => 0,
},
logLevel => 'error',
cookieName => 'lemonldap',
domain => 'example.com',
templateDir => 'site/templates',
staticPrefix => '/static',
securedCookie => 0,
https => 0,
logLevel => 'error',
cookieName => 'lemonldap',
domain => 'example.com',
templateDir => 'site/templates',
staticPrefix => '/static',
securedCookie => 0,
https => 0,
globalStorageOptions => {
Directory => $tmpDir,
LockDirectory => "$tmpDir/lock",
generateModule =>
'Lemonldap::NG::Common::Apache::Session::Generate::SHA256',
},
casStorageOptions => {
Directory => "$tmpDir/saml",
LockDirectory => "$tmpDir/saml/lock",
generateModule =>
'Lemonldap::NG::Common::Apache::Session::Generate::SHA256',
},
samlStorageOptions => {
Directory => "$tmpDir/saml",
LockDirectory => "$tmpDir/saml/lock",
generateModule =>
'Lemonldap::NG::Common::Apache::Session::Generate::SHA256',
},
oidcStorageOptions => {
Directory => "$tmpDir/saml",
LockDirectory => "$tmpDir/saml/lock",
generateModule =>
'Lemonldap::NG::Common::Apache::Session::Generate::SHA256',
},
};
=head3 Accessors