#!/bin/sh
test_description='magic pathspec tests using git-add'
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_expect_success 'setup' '
mkdir sub anothersub &&
: >sub/foo &&
: >anothersub/foo
'
test_expect_success 'add :/' "
cat >expected <<-EOF &&
add 'anothersub/foo'
add 'expected'
add 'sub/actual'
add 'sub/foo'
EOF
(cd sub && git add -n :/ >actual) &&
test_cmp expected sub/actual
"
cat >expected <<EOF
add 'anothersub/foo'
EOF
test_expect_success 'add :/anothersub' '
(cd sub && git add -n :/anothersub >actual) &&
test_cmp expected sub/actual
'
test_expect_success 'add :/non-existent' '
(cd sub && test_must_fail git add -n :/non-existent)
'
cat >expected <<EOF
add 'sub/foo'
EOF
if test_have_prereq !MINGW && mkdir ":" 2>/dev/null
then
test_set_prereq COLON_DIR
fi
test_expect_success COLON_DIR 'a file with the same (long) magic name exists' '
: >":(icase)ha" &&
test_must_fail git add -n ":(icase)ha" &&
git add -n "./:(icase)ha"
'
test_expect_success COLON_DIR 'a file with the same (short) magic name exists' '
: >":/bar" &&
test_must_fail git add -n :/bar &&
git add -n "./:/bar"
'
test_done