możliwe, tylko trochę twarde (nie Configure
lub make
konieczne), może być przydatna:
Program testowy w dystrybucji ładunków źródłem wszystkiego z katalogu lib` katalog /path/to/src/distribution/lib'. The key to running your existing perl installation against this test suite is to put all of the install libraries into this
. Można to zrobić z czymś takim:
cd /path/to/src/distribution
mv lib lib-original
mkdir lib
/path/to/installed/perl -e 'system qq{cp -prv "$_/." lib/}' \
-e 'for "lib-original",grep /../,reverse(@INC)'
(tam chyba bardziej wytrzymałe perl
poleceń, które używa -MFile::Copy
, ale to szybki i-brudny jeden-liner got me going). Używamy reverse @INC
, więc biblioteki z przodu @INC
nadpiszeją późniejsze biblioteki, a nie odwrotnie. Klauzula grep /../,...
uniemożliwia nam skopiowanie .
do, co prawdopodobnie nie byłoby pomocne.
Znalazłem kilka testów, które używają zakodowanych ścieżek do perl
, psed
i s2p
w katalogu źródłowym. Będziesz chciał upewnić się, że te pliki istnieją i że testy są ukierunkowane na zainstalowane wersje tych programów.
rm -f perl t/perl psed t/psed x2p/s2p
ln -s /path/to/installed/perl perl
ln -s /path/to/installed/perl t/perl
ln -s /path/to/installed/psed psed
ln -s /path/to/installed/psed t/psed
ln -s /path/to/installed/s2p x2p/s2p
Teraz użyj zwykłego Unix-y idiom na prowadzenie Perl testową Suite:
cd t
/path/to/installed/perl -MExtUtils::Command::MM \
-e 'test_harness(0,"../lib")' */*.t
Niektóre testy mogą być wyraźnie o sprawdzenie integralności procesu build-z-source, więc niektóre awarie należy się spodziewać.
(proces ten testowany na v5.14.0, v5.8.9, v5.10.1)
Aktualizacja: jeszcze trudniejsze. Istnieje wiele innych katalogów t
wewnątrz typowej dystrybucji źródłowej. Prawdopodobnie też chcą wypróbować:
cd /path/to/source/distribution
for dir in */*/
do
if [ -d $dir/t ] ; then
pushd $dir
echo Testing $dir
/path/to/installed/perl -MExtUtils::Command::MM \
-e 'test_harness(0,"../../lib","lib")' t/*.t
popd
fi
done
Wiele z tych testów są wyraźnie testowania integralności konstrukcji, więc można się spodziewać wiele z tych prób się nie powiedzie.
haven; 't próbowałem tego jeszcze, ale przypuszczam, że najpierw muszę zrobić 'Configure' i' make' ... hmmmm ... – ErikR