144 lines
3.6 KiB
Bash
Executable File
144 lines
3.6 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
cleanup() {
|
|
cd $PDIR
|
|
|
|
#Clean up after smoke-setup
|
|
cleanup_file=debian/tests/pkg-perl/smoke-cleanup
|
|
if [ -x $cleanup_file ]
|
|
then
|
|
( export TDIR; $cleanup_file )
|
|
fi
|
|
|
|
rm -rf $TDIR
|
|
}
|
|
|
|
TEMP=${ADTTMP:-${TMPDIR:-/tmp}}
|
|
|
|
TDIR=$(mktemp -d $TEMP/smokeXXXXXX)
|
|
|
|
PDIR=`pwd`
|
|
|
|
trap cleanup EXIT
|
|
|
|
file_list=debian/tests/pkg-perl/smoke-files
|
|
if [ ! -r $file_list ]; then
|
|
# backward compatibility squared for now
|
|
file_list=debian/tests/pkg-perl/test-files
|
|
fi
|
|
if [ ! -r $file_list ]; then
|
|
# backward compatibility for now
|
|
file_list=debian/tests/test-files
|
|
fi
|
|
|
|
export AUTOMATED_TESTING=1
|
|
export NONINTERACTIVE_TESTING=1
|
|
|
|
# overridable with smoke-env
|
|
PKG_PERL_PROVE_ARGS="--verbose --recurse --merge"
|
|
PKG_PERL_XVFB_ARGS="-a"
|
|
|
|
env_list=debian/tests/pkg-perl/smoke-env
|
|
if [ ! -r $env_list ]; then
|
|
env_list=debian/tests/pkg-perl/env-smoke
|
|
fi
|
|
if [ -r $env_list ]; then
|
|
eval $(sed '/^ *\(#\|$\)/d; s/^/export /' $env_list)
|
|
fi
|
|
|
|
for dir in common handler portal manager; do
|
|
TDIR2=${TDIR}/lemonldap-ng-$dir
|
|
mkdir -p $TDIR2/blib/lib \
|
|
$TDIR2/blib/arch \
|
|
$TDIR2/lib/Debian/pkgperl \
|
|
$TDIR2/blib/lib/Debian/pkgperl
|
|
cp -a lemonldap-ng-$dir/t $TDIR2/
|
|
if [ -d lemonldap-ng-$dir/site ]; then
|
|
cp -a lemonldap-ng-$dir/site $TDIR2/
|
|
fi
|
|
cat <<'EOF' > $TDIR2/lib/Debian/pkgperl/Foobar.pm
|
|
package Debian::pkgperl::Foobar;
|
|
our $VERSION = '0.01';
|
|
1;
|
|
__END__
|
|
=head1 NAME
|
|
|
|
Debian::pkgperl::Foobar - dummy module for test checkers
|
|
|
|
=cut
|
|
EOF
|
|
cp $TDIR2/lib/Debian/pkgperl/Foobar.pm $TDIR2/blib/lib/Debian/pkgperl
|
|
|
|
if [ ! -e $TDIR2/MANIFEST ]; then
|
|
cat <<'EOF' > $TDIR2/MANIFEST
|
|
lib/Debian/pkgperl/Foobar.pm
|
|
EOF
|
|
fi
|
|
|
|
if [ ! -e $TDIR2/MANIFEST.SKIP ]; then
|
|
cp /dev/null $TDIR2/MANIFEST.SKIP
|
|
fi
|
|
done
|
|
|
|
# Missing file
|
|
cp lemonldap-ng-common/lemonldap-ng.ini ${TDIR}/lemonldap-ng-common
|
|
|
|
# Test that have no interest
|
|
rm -f $TDIR/*/t/99-pod.t \
|
|
$TDIR/lemonldap-ng-manager/t/03-HTML-forms.t \
|
|
$TDIR/lemonldap-ng-manager/t/20-test-coverage.t \
|
|
$TDIR/lemonldap-ng-manager/t/80-attributes.t \
|
|
$TDIR/lemonldap-ng-manager/t/90-translations.t
|
|
|
|
for INI in $(find $TDIR/lemonldap-ng-* -name lemonldap-ng.ini); do
|
|
echo "Change $INI logLevel to debug"
|
|
perl -pi -e 's/^logLevel\s*=\s*\w+$/logLevel=debug/' $INI || true
|
|
done
|
|
|
|
# For now, too many bugs with Moose in autopkg jail, so manager isn't tested
|
|
for dir in common handler portal manager; do
|
|
TDIR2=${TDIR}/lemonldap-ng-$dir
|
|
|
|
# this is intended to be a last resort, please use it responsibly
|
|
setup_file=debian/tests/pkg-perl/smoke-setup
|
|
if [ -x $setup_file ]
|
|
then
|
|
( export TDIR2; $setup_file )
|
|
|
|
# Evaluate skip list a second time since smoke-setup might have
|
|
# generated some of the to-be-skipped files.
|
|
if [ -r $skip_list ]; then
|
|
egrep -v '^ *(#|$)' $skip_list | while read file; do
|
|
rm -f $TDIR2/$file
|
|
done
|
|
fi
|
|
fi
|
|
|
|
tests_file=$(pwd)/debian/tests/pkg-perl/smoke-tests
|
|
cd $TDIR2
|
|
if [ -r $tests_file ]; then
|
|
test_targets=$(eval ls -d $(egrep -v '^#' $tests_file) 2>/dev/null || true)
|
|
fi
|
|
|
|
if command -v xvfb-run >/dev/null
|
|
then
|
|
XVFB="xvfb-run -a"
|
|
else
|
|
XVFB=
|
|
PKG_PERL_XVFB_ARGS=
|
|
PKG_PERL_XVFB_SERVER_ARGS=
|
|
fi
|
|
|
|
test_targets=$(ls -d t/*.t 2>/dev/null || true)
|
|
|
|
if [ ! -n "$test_targets" ]; then
|
|
echo 'Nothing to prove, skipping.'
|
|
else
|
|
$XVFB $PKG_PERL_XVFB_ARGS ${PKG_PERL_XVFB_SERVER_ARGS:+-s} ${PKG_PERL_XVFB_SERVER_ARGS:+"$PKG_PERL_XVFB_SERVER_ARGS"} prove -I"$TDIR" --blib $PKG_PERL_PROVE_ARGS $test_targets 2>&1
|
|
fi
|
|
|
|
cd -
|
|
|
|
done
|