Only inherit a PWD if it resolves to "."

Fixes #5647
This commit is contained in:
ridiculousfish
2019-02-18 13:11:01 -08:00
parent 8e41e3337c
commit 59cb2d02a8
3 changed files with 23 additions and 5 deletions

View File

@@ -47,8 +47,22 @@ mkdir -p $base/realhome
set fish_path $PWD/../test/root/bin/fish
ln -s $base/realhome $base/linkhome
cd $base/linkhome
set -l real_getcwd (pwd -P)
env HOME=$base/linkhome $fish_path -c 'echo PWD is $PWD'
# Do not inherit a virtual PWD that fails to resolve to getcwd (#5647)
env HOME=$base/linkhome PWD=/tmp $fish_path -c 'echo $PWD' | read output_pwd
test (realpath $output_pwd) = $real_getcwd
and echo "BogusPWD test 1 succeeded"
or echo "BogusPWD test 1 failed: $output_pwd vs $real_getcwd"
env HOME=$base/linkhome PWD=/path/to/nowhere $fish_path -c 'echo $PWD' | read output_pwd
test (realpath $output_pwd) = $real_getcwd
and echo "BogusPWD test 2 succeeded"
or echo "BogusPWD test 2 failed: $output_pwd vs $real_getcwd"
# cd back before removing the test directory again.
cd $oldpwd
rm -Rf $base

View File

@@ -21,3 +21,5 @@ cd:
####################
# Virtual PWD inheritance
PWD is /tmp/cdcomp_test/linkhome
BogusPWD test 1 succeeded
BogusPWD test 2 succeeded