|
|
@ -4,8 +4,52 @@ PERL_TESTSDIR="/usr/share/perl/perl-tests" |
|
|
|
PERL_LIBDIR="/usr/lib/perl5/%%PERL_VERSION%%/" |
|
|
|
PERL_DISABLEDTESTS="%%PERL_DISABLEDTESTS%%" |
|
|
|
|
|
|
|
no_run="" |
|
|
|
manual_run="" |
|
|
|
manual_run_no_base="" |
|
|
|
|
|
|
|
while [ ! -z "$1" ]; do |
|
|
|
case $1 in |
|
|
|
-n) |
|
|
|
no_run="yes" |
|
|
|
;; |
|
|
|
-m) |
|
|
|
manual_run="yes" |
|
|
|
;; |
|
|
|
-mb) |
|
|
|
manual_run="yes" |
|
|
|
manual_run_no_base="yes" |
|
|
|
;; |
|
|
|
--help) |
|
|
|
echo "run_tests.sh [-n|-m|-mb|--help]" |
|
|
|
echo "" |
|
|
|
echo "Options:" |
|
|
|
echo " -n Just prepare the environment. Don't actually run any tests" |
|
|
|
echo " -m Run tests manually according to MANIFEST, instead of whatever t/TEST chooses" |
|
|
|
echo " -mb Don't run base tests. Implies -m" |
|
|
|
echo " --help Print this help ;)" |
|
|
|
echo "" |
|
|
|
exit 0 |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo "Invalid argument: $1" |
|
|
|
;; |
|
|
|
esac |
|
|
|
shift |
|
|
|
done |
|
|
|
|
|
|
|
if [ ! -f "$PERL_TESTSDIR/__prepared" ]; then |
|
|
|
ln -s "$PERL_LIBDIR" "$PERL_TESTSDIR/lib" |
|
|
|
# Many tests insist on having PERL5LIB in $PERL_TESTSDIR/lib. However, |
|
|
|
# that directory may also contain tests. Some of them(FindBin.t in particular) |
|
|
|
# also demand being located in a directory ending with "lib". So we can't do symlink |
|
|
|
# trickery here. |
|
|
|
# Our solution is to just copy PERL5LIB over. |
|
|
|
if [ -d "$PERL_TESTSDIR/lib" ]; then |
|
|
|
cp -a "$PERL_LIBDIR/"* "$PERL_TESTSDIR/lib/" |
|
|
|
else |
|
|
|
ln -s "$PERL_LIBDIR" "$PERL_TESTSDIR/lib" |
|
|
|
fi |
|
|
|
|
|
|
|
ln -s /usr/bin/perl "$PERL_TESTSDIR/perl" |
|
|
|
ln -s /usr/bin/perl "$PERL_TESTSDIR/t/perl" |
|
|
|
touch "$PERL_TESTSDIR/__prepared" |
|
|
@ -20,5 +64,18 @@ if [ ! -f "$PERL_TESTSDIR/__prepared" ]; then |
|
|
|
mv $PERL_TESTSDIR/MANIFEST_NEW $PERL_TESTSDIR/MANIFEST |
|
|
|
fi |
|
|
|
|
|
|
|
cd "$PERL_TESTSDIR/t" |
|
|
|
./perl TEST |
|
|
|
if [ -z "$no_run" ]; then |
|
|
|
cd "$PERL_TESTSDIR/t" |
|
|
|
if [ ! -z "$manual_run" ]; then |
|
|
|
for i in $(cat ../MANIFEST | sed 's/\t.*$//g' | grep '\.t$'); do |
|
|
|
if [ ! -z "$manual_run_no_base" ] && [ ! -z "$(echo $i | grep '^t/')" ]; then |
|
|
|
continue; |
|
|
|
fi |
|
|
|
echo "Running $i" |
|
|
|
./TEST ../$i |
|
|
|
echo "" |
|
|
|
done |
|
|
|
else |
|
|
|
./perl TEST |
|
|
|
fi |
|
|
|
fi |