From: Ian Jackson Date: Sat, 15 Oct 2016 19:34:40 +0000 (+0100) Subject: Test suite: Fix entirely-broken tstunt PERLLIB arrangements X-Git-Tag: archive/debian/2.0~7 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=523f42f6ba9805aae8245af4f996581d6c7c51a3 Test suite: Fix entirely-broken tstunt PERLLIB arrangements Specifically: * Properly dereference the variable when looking for the stunt dir to be there already * Do not add "." to the path if the path starts out empty. * Crash _with the right message_ in dpkg-parsechangelog if PERLLIB is unset. (PERLLIB mustn't be unset because we're trying to strip our own value from it.) Signed-off-by: Ian Jackson --- diff --git a/debian/changelog b/debian/changelog index 65ecda45..a60f35a4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -118,6 +118,7 @@ dgit (1.5~~) unstable; urgency=medium * Provide better log output for certain failures. * Many new tests (especially for new functionality). * Add missing debhelper (>=8) to test suite's global Depends. + * tstunt arrangements: Fix mishandling of PERLLIB, etc. -- diff --git a/tests/lib b/tests/lib index 6668a1c7..3294cdc0 100644 --- a/tests/lib +++ b/tests/lib @@ -696,11 +696,13 @@ t-stunt-envvar () { local var=$1 local tstunt=$2 eval ' - case "'$var'" in + case "$'$var'" in "$tstunt:"*) ;; *":$tstunt:"*) ;; + "") '$var'="$tstunt" ;; *) '$var'="$tstunt:$'$var'" ;; esac + export '$var' ' } diff --git a/tests/tstunt/dpkg-parsechangelog b/tests/tstunt/dpkg-parsechangelog index 1abd00ca..4d7cdf84 100755 --- a/tests/tstunt/dpkg-parsechangelog +++ b/tests/tstunt/dpkg-parsechangelog @@ -30,7 +30,7 @@ if (@ARGV) { foreach my $k (qw(PATH PERLLIB)) { my @opath = defined $ENV{$k} ? split /\:/, $ENV{$k} : (); my @npath = grep { $_ ne $strip } @opath; - @npath != @opath or die "$0 $k $ENV{$k} ?"; + @npath != @opath or die "$0 $k ".($ENV{$k}//"(undef)")." ?"; $ENV{$k} = join ':', @npath; } die if $ENV{'DGIT_NO_TSTUNT_CLPARSE'}++;