aboutsummaryrefslogtreecommitdiff
path: root/t/t4012-diff-binary.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/t4012-diff-binary.sh
parentb9b727ddb3c9e005bc4e9af0b990b6ef06d7f621 (diff)
parentb319ef70a94731a5c6f18d07a49d5dda3f06f5d3 (diff)
downloadgit-00d3278c8534a8244ae3447189401111e017fd5d.tar.gz
git-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/t4012-diff-binary.sh')
-rwxr-xr-xt/t4012-diff-binary.sh57
1 files changed, 39 insertions, 18 deletions
diff --git a/t/t4012-diff-binary.sh b/t/t4012-diff-binary.sh
index 323606c65..f64aa48d2 100755
--- a/t/t4012-diff-binary.sh
+++ b/t/t4012-diff-binary.sh
@@ -10,9 +10,9 @@ test_description='Binary diff and apply
test_expect_success 'prepare repository' \
'echo AIT >a && echo BIT >b && echo CIT >c && echo DIT >d &&
- git-update-index --add a b c d &&
+ git update-index --add a b c d &&
echo git >a &&
- cat ../test4012.png >b &&
+ cat "$TEST_DIRECTORY"/test4012.png >b &&
echo git >c &&
cat b b >d'
@@ -24,18 +24,18 @@ cat > expected <<\EOF
4 files changed, 2 insertions(+), 2 deletions(-)
EOF
test_expect_success 'diff without --binary' \
- 'git-diff | git-apply --stat --summary >current &&
- cmp current expected'
+ 'git diff | git apply --stat --summary >current &&
+ test_cmp expected current'
test_expect_success 'diff with --binary' \
- 'git-diff --binary | git-apply --stat --summary >current &&
- cmp current expected'
+ 'git diff --binary | git apply --stat --summary >current &&
+ test_cmp expected current'
# apply needs to be able to skip the binary material correctly
# in order to report the line number of a corrupt patch.
test_expect_success 'apply detecting corrupt patch correctly' \
- 'git-diff | sed -e 's/-CIT/xCIT/' >broken &&
- if git-apply --stat --summary broken 2>detected
+ 'git diff | sed -e 's/-CIT/xCIT/' >broken &&
+ if git apply --stat --summary broken 2>detected
then
echo unhappy - should have detected an error
(exit 1)
@@ -48,8 +48,8 @@ test_expect_success 'apply detecting corrupt patch correctly' \
test "$detected" = xCIT'
test_expect_success 'apply detecting corrupt patch correctly' \
- 'git-diff --binary | sed -e 's/-CIT/xCIT/' >broken &&
- if git-apply --stat --summary broken 2>detected
+ 'git diff --binary | sed -e 's/-CIT/xCIT/' >broken &&
+ if git apply --stat --summary broken 2>detected
then
echo unhappy - should have detected an error
(exit 1)
@@ -61,20 +61,41 @@ test_expect_success 'apply detecting corrupt patch correctly' \
detected=`sed -ne "${detected}p" broken` &&
test "$detected" = xCIT'
-test_expect_success 'initial commit' 'git-commit -a -m initial'
+test_expect_success 'initial commit' 'git commit -a -m initial'
# Try removal (b), modification (d), and creation (e).
test_expect_success 'diff-index with --binary' \
'echo AIT >a && mv b e && echo CIT >c && cat e >d &&
- git-update-index --add --remove a b c d e &&
- tree0=`git-write-tree` &&
- git-diff --cached --binary >current &&
- git-apply --stat --summary current'
+ git update-index --add --remove a b c d e &&
+ tree0=`git write-tree` &&
+ git diff --cached --binary >current &&
+ git apply --stat --summary current'
test_expect_success 'apply binary patch' \
- 'git-reset --hard &&
- git-apply --binary --index <current &&
- tree1=`git-write-tree` &&
+ 'git reset --hard &&
+ git apply --binary --index <current &&
+ tree1=`git write-tree` &&
test "$tree1" = "$tree0"'
+q_to_nul() {
+ perl -pe 'y/Q/\000/'
+}
+
+nul_to_q() {
+ perl -pe 'y/\000/Q/'
+}
+
+test_expect_success 'diff --no-index with binary creation' '
+ echo Q | q_to_nul >binary &&
+ (: hide error code from diff, which just indicates differences
+ git diff --binary --no-index /dev/null binary >current ||
+ true
+ ) &&
+ rm binary &&
+ git apply --binary <current &&
+ echo Q >expected &&
+ nul_to_q <binary >actual &&
+ test_cmp expected actual
+'
+
test_done