mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-17 10:12:46 +08:00
Port realpath tests to littlecheck
I'm gonna add more tests to this and I don't want to touch the old stuff. Notice that this needs to have the output of the complete_directories test adjusted because this one now runs later. That's something we should take into account in future.
This commit is contained in:
parent
7d3bec1297
commit
d775c584a5
|
@ -9,8 +9,6 @@ test/data/ Directory
|
|||
test/data/abc/ Directory
|
||||
test/data/abcd/ Directory
|
||||
test/data/fish/ Directory
|
||||
test/data/fish-symlink/ Directory
|
||||
test/data/fish-symlink2/ Directory
|
||||
test/data/xy/ Directory
|
||||
test/data/xyz/ Directory
|
||||
# __fish_complete_directories test/data/abc
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# RUN: %fish %s
|
||||
# $XDG_DATA_HOME can itself be a relative path. So force it to an absolute
|
||||
# path so we can remove it from any resolved paths below. This is needed
|
||||
# because the contents of the builtin realpath.out file can't include any $PWD
|
||||
|
@ -7,30 +8,38 @@ set -l data_home_realpath (builtin realpath $XDG_DATA_HOME)
|
|||
# A bogus absolute path is handled correctly and sets a failure status.
|
||||
if not builtin realpath /this/better/be/an/invalid/path
|
||||
echo first invalid path handled okay
|
||||
# CHECK: first invalid path handled okay
|
||||
# CHECKERR: builtin realpath: /this/better/be/an/invalid/path: No such file or directory
|
||||
end
|
||||
|
||||
# A non-existent file relative to $PWD succeeds.
|
||||
set -l real_path (builtin realpath nonexistent-file)
|
||||
if test "$real_path" = (realpath $PWD)"/nonexistent-file"
|
||||
echo nonexistent-file in PWD correctly converted
|
||||
# CHECK: nonexistent-file in PWD correctly converted
|
||||
end
|
||||
|
||||
# The simplest absolute path should undergo no transformation.
|
||||
builtin realpath /
|
||||
# CHECK: /
|
||||
|
||||
# The second simplest absolute path should undergo no transformation.
|
||||
builtin realpath /this-better-not-exist
|
||||
# CHECK: /this-better-not-exist
|
||||
|
||||
# Check that a pathological case is handled correctly (i.e., there is only one
|
||||
# leading slash).
|
||||
builtin realpath /../../x
|
||||
# CHECK: /x
|
||||
|
||||
# Another pathological corner case. GNU realpath first strips trailing slashes
|
||||
# so that "/a//" is converted to "/a" before performing the real path
|
||||
# conversion. So, despite appearances, it considers "a" to be the last
|
||||
# component in that case.
|
||||
builtin realpath /abc/
|
||||
# CHECK: /abc
|
||||
builtin realpath /def///
|
||||
# CHECK: /def
|
||||
|
||||
# Verify `realpath .` when cwd is a deleted directory gives a no such file or dir error.
|
||||
set -l tmpdir (mktemp -d)
|
||||
|
@ -39,6 +48,7 @@ pushd $tmpdir
|
|||
# But that's what we want to test, so we weasel around it.
|
||||
sh -c "cd ..; rmdir $tmpdir"
|
||||
builtin realpath .
|
||||
# CHECKERR: builtin realpath: .: No such file or directory
|
||||
popd
|
||||
|
||||
# A single symlink to a directory is correctly resolved.
|
||||
|
@ -47,6 +57,7 @@ set -l real_path (builtin realpath $XDG_DATA_HOME/fish-symlink)
|
|||
set -l expected_real_path "$data_home_realpath/fish"
|
||||
if test "$real_path" = "$expected_real_path"
|
||||
echo "fish-symlink handled correctly"
|
||||
# CHECK: fish-symlink handled correctly
|
||||
else
|
||||
echo "fish-symlink not handled correctly: $real_path != $expected_real_path" >&2
|
||||
end
|
||||
|
@ -57,6 +68,7 @@ set -l real_path (builtin realpath $XDG_DATA_HOME/fish-symlink/nonexistent-file-
|
|||
set -l expected_real_path "$data_home_realpath/fish/nonexistent-file-relative-to-a-symlink"
|
||||
if test "$real_path" = "$expected_real_path"
|
||||
echo "fish-symlink/nonexistent-file-relative-to-a-symlink correctly converted"
|
||||
# CHECK: fish-symlink/nonexistent-file-relative-to-a-symlink correctly converted
|
||||
else
|
||||
echo "failure nonexistent-file-relative-to-a-symlink: $real_path != $expected_real_path" >&2
|
||||
end
|
||||
|
@ -69,6 +81,7 @@ set -l real_path (builtin realpath $XDG_DATA_HOME/fish-symlink/symlink_file)
|
|||
set -l expected_real_path "$data_home_realpath/fish/real_file"
|
||||
if test "$real_path" = "$expected_real_path"
|
||||
echo "fish-symlink/symlink_file handled correctly"
|
||||
# CHECK: fish-symlink/symlink_file handled correctly
|
||||
else
|
||||
echo "fish-symlink/symlink_file not handled correctly: $real_path != expected_real_path" >&2
|
||||
end
|
|
@ -1,2 +0,0 @@
|
|||
builtin realpath: /this/better/be/an/invalid/path: No such file or directory
|
||||
builtin realpath: .: No such file or directory
|
|
@ -1,10 +0,0 @@
|
|||
first invalid path handled okay
|
||||
nonexistent-file in PWD correctly converted
|
||||
/
|
||||
/this-better-not-exist
|
||||
/x
|
||||
/abc
|
||||
/def
|
||||
fish-symlink handled correctly
|
||||
fish-symlink/nonexistent-file-relative-to-a-symlink correctly converted
|
||||
fish-symlink/symlink_file handled correctly
|
Loading…
Reference in New Issue
Block a user