aboutsummaryrefslogtreecommitdiff
path: root/t/t4002-diff-basic.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-01-30 16:03:10 -0800
committerJunio C Hamano <gitster@pobox.com>2010-01-30 16:03:10 -0800
commit00d3278c8534a8244ae3447189401111e017fd5d (patch)
treef1c19903bc10ffe4816642040080fb6cfd5da376 /t/t4002-diff-basic.sh
parentb9b727ddb3c9e005bc4e9af0b990b6ef06d7f621 (diff)
parentb319ef70a94731a5c6f18d07a49d5dda3f06f5d3 (diff)
downloadgit-00d3278c8534a8244ae3447189401111e017fd5d.tar.xz
Merge commit 'b319ef7' into jc/maint-fix-test-perm
* commit 'b319ef7': (8132 commits) Add a small patch-mode testing library git-apply--interactive: Refactor patch mode code t8005: Nobody writes Russian in shift_jis Fix severe breakage in "git-apply --whitespace=fix" Update release notes for 1.6.4 After renaming a section, print any trailing variable definitions Make section_name_match start on '[', and return the length on success send-email: detect cycles in alias expansion Show the presence of untracked files in the bash prompt. SunOS grep does not understand -C<n> nor -e Fix export_marks() error handling. git repack: keep commits hidden by a graft Add a test showing that 'git repack' throws away grafted-away parents git branch: clean up detached branch handling git branch: avoid unnecessary object lookups git branch: fix performance problem git svn: fix shallow clone when upstream revision is too new do_one_ref(): null_sha1 check is not about broken ref configure.ac: properly unset NEEDS_SSL_WITH_CRYPTO when sha1 func is missing janitor: useless checks before free ...
Diffstat (limited to 't/t4002-diff-basic.sh')
-rwxr-xr-xt/t4002-diff-basic.sh94
1 files changed, 58 insertions, 36 deletions
diff --git a/t/t4002-diff-basic.sh b/t/t4002-diff-basic.sh
index 56eda63fc2..18695ce821 100755
--- a/t/t4002-diff-basic.sh
+++ b/t/t4002-diff-basic.sh
@@ -7,7 +7,7 @@ test_description='Test diff raw-output.
'
. ./test-lib.sh
-. ../lib-read-tree-m-3way.sh
+. "$TEST_DIRECTORY"/lib-read-tree-m-3way.sh
cat >.test-plain-OA <<\EOF
:000000 100644 0000000000000000000000000000000000000000 ccba72ad3888a3520b39efcf780b9ee64167535d A AA
@@ -140,80 +140,94 @@ cmp_diff_files_output () {
test_expect_success \
'diff-tree of known trees.' \
- 'git-diff-tree $tree_O $tree_A >.test-a &&
+ 'git diff-tree $tree_O $tree_A >.test-a &&
cmp -s .test-a .test-plain-OA'
test_expect_success \
'diff-tree of known trees.' \
- 'git-diff-tree -r $tree_O $tree_A >.test-a &&
+ 'git diff-tree -r $tree_O $tree_A >.test-a &&
cmp -s .test-a .test-recursive-OA'
test_expect_success \
'diff-tree of known trees.' \
- 'git-diff-tree $tree_O $tree_B >.test-a &&
+ 'git diff-tree $tree_O $tree_B >.test-a &&
cmp -s .test-a .test-plain-OB'
test_expect_success \
'diff-tree of known trees.' \
- 'git-diff-tree -r $tree_O $tree_B >.test-a &&
+ 'git diff-tree -r $tree_O $tree_B >.test-a &&
cmp -s .test-a .test-recursive-OB'
test_expect_success \
'diff-tree of known trees.' \
- 'git-diff-tree $tree_A $tree_B >.test-a &&
+ 'git diff-tree $tree_A $tree_B >.test-a &&
cmp -s .test-a .test-plain-AB'
test_expect_success \
'diff-tree of known trees.' \
- 'git-diff-tree -r $tree_A $tree_B >.test-a &&
+ 'git diff-tree -r $tree_A $tree_B >.test-a &&
cmp -s .test-a .test-recursive-AB'
test_expect_success \
+ 'diff-tree --stdin of known trees.' \
+ 'echo $tree_A $tree_B | git diff-tree --stdin > .test-a &&
+ echo $tree_A $tree_B > .test-plain-ABx &&
+ cat .test-plain-AB >> .test-plain-ABx &&
+ cmp -s .test-a .test-plain-ABx'
+
+test_expect_success \
+ 'diff-tree --stdin of known trees.' \
+ 'echo $tree_A $tree_B | git diff-tree -r --stdin > .test-a &&
+ echo $tree_A $tree_B > .test-recursive-ABx &&
+ cat .test-recursive-AB >> .test-recursive-ABx &&
+ cmp -s .test-a .test-recursive-ABx'
+
+test_expect_success \
'diff-cache O with A in cache' \
- 'git-read-tree $tree_A &&
- git-diff-index --cached $tree_O >.test-a &&
+ 'git read-tree $tree_A &&
+ git diff-index --cached $tree_O >.test-a &&
cmp -s .test-a .test-recursive-OA'
test_expect_success \
'diff-cache O with B in cache' \
- 'git-read-tree $tree_B &&
- git-diff-index --cached $tree_O >.test-a &&
+ 'git read-tree $tree_B &&
+ git diff-index --cached $tree_O >.test-a &&
cmp -s .test-a .test-recursive-OB'
test_expect_success \
'diff-cache A with B in cache' \
- 'git-read-tree $tree_B &&
- git-diff-index --cached $tree_A >.test-a &&
+ 'git read-tree $tree_B &&
+ git diff-index --cached $tree_A >.test-a &&
cmp -s .test-a .test-recursive-AB'
test_expect_success \
'diff-files with O in cache and A checked out' \
'rm -fr Z [A-Z][A-Z] &&
- git-read-tree $tree_A &&
- git-checkout-index -f -a &&
- git-read-tree --reset $tree_O || return 1
- git-update-index --refresh >/dev/null ;# this can exit non-zero
- git-diff-files >.test-a &&
+ git read-tree $tree_A &&
+ git checkout-index -f -a &&
+ git read-tree --reset $tree_O || return 1
+ git update-index --refresh >/dev/null ;# this can exit non-zero
+ git diff-files >.test-a &&
cmp_diff_files_output .test-a .test-recursive-OA'
test_expect_success \
'diff-files with O in cache and B checked out' \
'rm -fr Z [A-Z][A-Z] &&
- git-read-tree $tree_B &&
- git-checkout-index -f -a &&
- git-read-tree --reset $tree_O || return 1
- git-update-index --refresh >/dev/null ;# this can exit non-zero
- git-diff-files >.test-a &&
+ git read-tree $tree_B &&
+ git checkout-index -f -a &&
+ git read-tree --reset $tree_O || return 1
+ git update-index --refresh >/dev/null ;# this can exit non-zero
+ git diff-files >.test-a &&
cmp_diff_files_output .test-a .test-recursive-OB'
test_expect_success \
'diff-files with A in cache and B checked out' \
'rm -fr Z [A-Z][A-Z] &&
- git-read-tree $tree_B &&
- git-checkout-index -f -a &&
- git-read-tree --reset $tree_A || return 1
- git-update-index --refresh >/dev/null ;# this can exit non-zero
- git-diff-files >.test-a &&
+ git read-tree $tree_B &&
+ git checkout-index -f -a &&
+ git read-tree --reset $tree_A || return 1
+ git update-index --refresh >/dev/null ;# this can exit non-zero
+ git diff-files >.test-a &&
cmp_diff_files_output .test-a .test-recursive-AB'
################################################################
@@ -222,26 +236,34 @@ test_expect_success \
test_expect_success \
'diff-tree O A == diff-tree -R A O' \
- 'git-diff-tree $tree_O $tree_A >.test-a &&
- git-diff-tree -R $tree_A $tree_O >.test-b &&
+ 'git diff-tree $tree_O $tree_A >.test-a &&
+ git diff-tree -R $tree_A $tree_O >.test-b &&
cmp -s .test-a .test-b'
test_expect_success \
'diff-tree -r O A == diff-tree -r -R A O' \
- 'git-diff-tree -r $tree_O $tree_A >.test-a &&
- git-diff-tree -r -R $tree_A $tree_O >.test-b &&
+ 'git diff-tree -r $tree_O $tree_A >.test-a &&
+ git diff-tree -r -R $tree_A $tree_O >.test-b &&
cmp -s .test-a .test-b'
test_expect_success \
'diff-tree B A == diff-tree -R A B' \
- 'git-diff-tree $tree_B $tree_A >.test-a &&
- git-diff-tree -R $tree_A $tree_B >.test-b &&
+ 'git diff-tree $tree_B $tree_A >.test-a &&
+ git diff-tree -R $tree_A $tree_B >.test-b &&
cmp -s .test-a .test-b'
test_expect_success \
'diff-tree -r B A == diff-tree -r -R A B' \
- 'git-diff-tree -r $tree_B $tree_A >.test-a &&
- git-diff-tree -r -R $tree_A $tree_B >.test-b &&
+ 'git diff-tree -r $tree_B $tree_A >.test-a &&
+ git diff-tree -r -R $tree_A $tree_B >.test-b &&
cmp -s .test-a .test-b'
+test_expect_success \
+ 'diff can read from stdin' \
+ 'test_must_fail git diff --no-index -- MN - < NN |
+ grep -v "^index" | sed "s#/-#/NN#" >.test-a &&
+ test_must_fail git diff --no-index -- MN NN |
+ grep -v "^index" >.test-b &&
+ test_cmp .test-a .test-b'
+
test_done