mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-10-11 00:00:13 +08:00
70 lines
2.6 KiB
Bash
Executable File
70 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
cleanup () {
|
|
rm tmp-alias
|
|
if [ "${CASE_SENSITIVE-}" = '1' ]; then
|
|
rm tmp/TREE/node
|
|
rmdir tmp/TREE
|
|
fi
|
|
rm tmp/tree/node
|
|
rmdir tmp/tree
|
|
rm tmp/node
|
|
rmdir tmp
|
|
rm tmp2/node
|
|
rmdir tmp2
|
|
}
|
|
die () { echo "$@" ; cleanup; exit 1; }
|
|
|
|
: nvm.sh
|
|
\. ../../../nvm.sh
|
|
|
|
mkdir -p tmp
|
|
touch tmp/node
|
|
mkdir -p tmp2
|
|
touch tmp2/node
|
|
mkdir -p tmp/tree
|
|
touch tmp/tree/node
|
|
ln -s tmp tmp-alias
|
|
CASE_SENSITIVE=0
|
|
if [ ! -d tmp/TREE ]; then
|
|
CASE_SENSITIVE=1
|
|
mkdir tmp/TREE
|
|
touch tmp/TREE/node
|
|
fi
|
|
|
|
[ "$(nvm_tree_contains_path 2>&1)" = "both the tree and the node path are required" ] || die 'incorrect error message with no args'
|
|
[ "$(nvm_tree_contains_path > /dev/null 2>&1 ; echo $?)" = "2" ] || die 'incorrect error code with no args'
|
|
[ "$(nvm_tree_contains_path tmp 2>&1)" = "both the tree and the node path are required" ] || die 'incorrect error message with one arg'
|
|
[ "$(nvm_tree_contains_path > /dev/null 2>&1 ; echo $?)" = "2" ] || die 'incorrect error code with one arg'
|
|
|
|
nvm_tree_contains_path tmp tmp/node || die '"tmp" should contain "tmp/node"'
|
|
|
|
nvm_tree_contains_path tmp tmp2/node && die '"tmp" should not contain "tmp2/node"'
|
|
|
|
nvm_tree_contains_path tmp2 tmp2/node || die '"tmp2" should contain "tmp2/node"'
|
|
|
|
nvm_tree_contains_path tmp2 tmp/node && die '"tmp2" should not contain "tmp/node"'
|
|
|
|
nvm_tree_contains_path tmp/ tmp/node || die '"tmp/" should contain "tmp/node"'
|
|
nvm_tree_contains_path tmp// tmp/node || die '"tmp//" should contain "tmp/node"'
|
|
nvm_tree_contains_path / /tmp/node || die '"/" should contain "/tmp/node"'
|
|
|
|
nvm_tree_contains_path "tmp[glob]" "tmp[glob]/node" || die '"tmp[glob]" should contain "tmp[glob]/node"'
|
|
nvm_tree_contains_path "tmp" "tmp[glob]/node" && die '"tmp" should not contain "tmp[glob]/node"'
|
|
|
|
if [ "${CASE_SENSITIVE}" = '1' ]; then
|
|
nvm_tree_contains_path tmp/tree tmp/TREE/node && die 'case-sensitive directories should stay distinct'
|
|
nvm_tree_contains_path tmp/TREE tmp/tree/node && die 'case-sensitive directories should stay distinct'
|
|
else
|
|
nvm_tree_contains_path tmp/tree tmp/TREE/node || die 'case-insensitive directories should match'
|
|
nvm_tree_contains_path tmp/TREE tmp/tree/node || die 'case-insensitive directories should match'
|
|
fi
|
|
|
|
nvm_tree_contains_path tmp-alias tmp/node || die 'a symlink to the tree should contain its node'
|
|
nvm_tree_contains_path tmp tmp-alias/node || die 'the tree should contain a node reached through a symlink'
|
|
nvm_tree_contains_path tmp-alias tmp2/node && die 'a symlink should not contain a sibling tree'
|
|
|
|
nvm_tree_contains_path nonexistent NONEXISTENT/node && die 'missing directories should not be case folded'
|
|
|
|
cleanup
|