mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
![Junio C Hamano](/assets/img/avatar_default.png)
As a general principle, we should not use "git diff" to validate the results of what git command that is being tested has done. We would not know if we are testing the command in question, or locating a bug in the cute hack of "git diff --no-index". Rather use test_cmp for that purpose. Signed-off-by: Junio C Hamano <gitster@pobox.com>
56 lines
976 B
Bash
Executable file
56 lines
976 B
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2006 Junio C Hamano
|
|
#
|
|
|
|
test_description='git apply with new style GNU diff with empty context
|
|
|
|
'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success setup '
|
|
{
|
|
echo; echo;
|
|
echo A; echo B; echo C;
|
|
echo;
|
|
} >file1 &&
|
|
cat file1 >file1.orig &&
|
|
{
|
|
cat file1 &&
|
|
echo Q | tr -d "\\012"
|
|
} >file2 &&
|
|
cat file2 >file2.orig
|
|
git add file1 file2 &&
|
|
sed -e "/^B/d" <file1.orig >file1 &&
|
|
sed -e "/^[BQ]/d" <file2.orig >file2 &&
|
|
echo Q | tr -d "\\012" >>file2 &&
|
|
cat file1 >file1.mods &&
|
|
cat file2 >file2.mods &&
|
|
git diff |
|
|
sed -e "s/^ \$//" >diff.output
|
|
'
|
|
|
|
test_expect_success 'apply --numstat' '
|
|
|
|
git apply --numstat diff.output >actual &&
|
|
{
|
|
echo "0 1 file1" &&
|
|
echo "0 1 file2"
|
|
} >expect &&
|
|
test_cmp expect actual
|
|
|
|
'
|
|
|
|
test_expect_success 'apply --apply' '
|
|
|
|
cat file1.orig >file1 &&
|
|
cat file2.orig >file2 &&
|
|
git update-index file1 file2 &&
|
|
git apply --index diff.output &&
|
|
test_cmp file1.mods file1 &&
|
|
test_cmp file2.mods file2
|
|
'
|
|
|
|
test_done
|