t4011: modernise style

Match the style to more modern test scripts, namely:

 - The first line of each test has prereq, title and opening sq for the
   script body.  This makes the test shorter while reducing the need for
   backslashes.

 - Be prepared for the case in which the previous test may have failed.
   If a test wants to start from not having "frotz" that the previous test
   may have created, write "rm -f frotz", not "rm frotz".

 - Prepare the expected output inside your own test.

 - The order of comparison to check the result is "diff expected actual",
   so that the output will show how the output from the git you just broke
   is different from what is expected.

 - Write no SP between redirection '>' (or '<' for that matter) and the
   filename.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 2012-02-29 18:14:14 -08:00
parent 6a2e93f107
commit 13a4899886
1 changed files with 82 additions and 86 deletions

View File

@ -9,7 +9,8 @@ test_description='Test diff of symlinks.
. ./test-lib.sh . ./test-lib.sh
. "$TEST_DIRECTORY"/diff-lib.sh . "$TEST_DIRECTORY"/diff-lib.sh


cat > expected << EOF test_expect_success SYMLINKS 'diff new symlink' '
cat >expected <<-\EOF &&
diff --git a/frotz b/frotz diff --git a/frotz b/frotz
new file mode 120000 new file mode 120000
index 0000000..7c465af index 0000000..7c465af
@ -19,23 +20,22 @@ index 0000000..7c465af
+xyzzy +xyzzy
\ No newline at end of file \ No newline at end of file
EOF EOF

ln -s xyzzy frotz &&
test_expect_success SYMLINKS \
'diff new symlink' \
'ln -s xyzzy frotz &&
git update-index && git update-index &&
tree=$(git write-tree) && tree=$(git write-tree) &&
git update-index --add frotz && git update-index --add frotz &&
GIT_DIFF_OPTS=--unified=0 git diff-index -M -p $tree >current && GIT_DIFF_OPTS=--unified=0 git diff-index -M -p $tree >current &&
compare_diff_patch current expected' compare_diff_patch expected current
'


test_expect_success SYMLINKS \ test_expect_success SYMLINKS 'diff unchanged symlink' '
'diff unchanged symlink' \ tree=$(git write-tree) &&
'tree=$(git write-tree) &&
git update-index frotz && git update-index frotz &&
test -z "$(git diff-index --name-only $tree)"' test -z "$(git diff-index --name-only $tree)"
'


cat > expected << EOF test_expect_success SYMLINKS 'diff removed symlink' '
cat >expected <<-\EOF &&
diff --git a/frotz b/frotz diff --git a/frotz b/frotz
deleted file mode 120000 deleted file mode 120000
index 7c465af..0000000 index 7c465af..0000000
@ -45,24 +45,22 @@ index 7c465af..0000000
-xyzzy -xyzzy
\ No newline at end of file \ No newline at end of file
EOF EOF

mv frotz frotz2 &&
test_expect_success SYMLINKS \
'diff removed symlink' \
'mv frotz frotz2 &&
git diff-index -M -p $tree >current && git diff-index -M -p $tree >current &&
compare_diff_patch current expected' compare_diff_patch expected current
'


cat > expected << EOF test_expect_success SYMLINKS 'diff identical, but newly created symlink' '
cat >expected <<-\EOF &&
diff --git a/frotz b/frotz diff --git a/frotz b/frotz
EOF EOF

ln -s xyzzy frotz &&
test_expect_success SYMLINKS \
'diff identical, but newly created symlink' \
'ln -s xyzzy frotz &&
git diff-index -M -p $tree >current && git diff-index -M -p $tree >current &&
compare_diff_patch current expected' compare_diff_patch expected current
'


cat > expected << EOF test_expect_success SYMLINKS 'diff different symlink' '
cat >expected <<-\EOF &&
diff --git a/frotz b/frotz diff --git a/frotz b/frotz
index 7c465af..df1db54 120000 index 7c465af..df1db54 120000
--- a/frotz --- a/frotz
@ -73,21 +71,19 @@ index 7c465af..df1db54 120000
+yxyyz +yxyyz
\ No newline at end of file \ No newline at end of file
EOF EOF

rm -f frotz &&
test_expect_success SYMLINKS \
'diff different symlink' \
'rm frotz &&
ln -s yxyyz frotz && ln -s yxyyz frotz &&
git diff-index -M -p $tree >current && git diff-index -M -p $tree >current &&
compare_diff_patch current expected' compare_diff_patch expected current
'


test_expect_success SYMLINKS \ test_expect_success SYMLINKS 'diff symlinks with non-existing targets' '
'diff symlinks with non-existing targets' \ ln -s narf pinky &&
'ln -s narf pinky &&
ln -s take\ over brain && ln -s take\ over brain &&
test_must_fail git diff --no-index pinky brain >output 2>output.err && test_must_fail git diff --no-index pinky brain >output 2>output.err &&
grep narf output && grep narf output &&
! grep error output.err' ! test -s output.err
'


test_expect_success SYMLINKS 'setup symlinks with attributes' ' test_expect_success SYMLINKS 'setup symlinks with attributes' '
echo "*.bin diff=bin" >>.gitattributes && echo "*.bin diff=bin" >>.gitattributes &&
@ -96,7 +92,8 @@ test_expect_success SYMLINKS 'setup symlinks with attributes' '
git add -N file.bin link.bin git add -N file.bin link.bin
' '


cat >expect <<'EOF' test_expect_success SYMLINKS 'symlinks do not respect userdiff config by path' '
cat >expect <<-\EOF &&
diff --git a/file.bin b/file.bin diff --git a/file.bin b/file.bin
index e69de29..d95f3ad 100644 index e69de29..d95f3ad 100644
Binary files a/file.bin and b/file.bin differ Binary files a/file.bin and b/file.bin differ
@ -108,7 +105,6 @@ index e69de29..dce41ec 120000
+file.bin +file.bin
\ No newline at end of file \ No newline at end of file
EOF EOF
test_expect_success SYMLINKS 'symlinks do not respect userdiff config by path' '
git config diff.bin.binary true && git config diff.bin.binary true &&
git diff file.bin link.bin >actual && git diff file.bin link.bin >actual &&
test_cmp expect actual test_cmp expect actual