ident: use a dynamic strbuf in fmt_ident
[gitweb.git] / t / t4103-apply-binary.sh
index 7da0b4bb8bfa96765b9f6eaa1693e2e24e82d335..dbbf56cba9f5108f79d767ad48f3092dc821a232 100755 (executable)
@@ -20,66 +20,77 @@ EOF
 cat file1 >file2
 cat file1 >file4
 
-git update-index --add --remove file1 file2 file4
-git-commit -m 'Initial Version' 2>/dev/null
-
-git-checkout -b binary
-perl -pe 'y/x/\000/' <file1 >file3
-cat file3 >file4
-git add file2
-perl -pe 'y/\000/v/' <file3 >file1
-rm -f file2
-git update-index --add --remove file1 file2 file3 file4
-git-commit -m 'Second Version'
-
-git diff-tree -p master binary >B.diff
-git diff-tree -p -C master binary >C.diff
-
-git diff-tree -p --binary master binary >BF.diff
-git diff-tree -p --binary -C master binary >CF.diff
+test_expect_success 'setup' "
+       git update-index --add --remove file1 file2 file4 &&
+       git commit -m 'Initial Version' 2>/dev/null &&
+
+       git checkout -b binary &&
+       perl -pe 'y/x/\000/' <file1 >file3 &&
+       cat file3 >file4 &&
+       git add file2 &&
+       perl -pe 'y/\000/v/' <file3 >file1 &&
+       rm -f file2 &&
+       git update-index --add --remove file1 file2 file3 file4 &&
+       git commit -m 'Second Version' &&
+
+       git diff-tree -p master binary >B.diff &&
+       git diff-tree -p -C master binary >C.diff &&
+
+       git diff-tree -p --binary master binary >BF.diff &&
+       git diff-tree -p --binary -C master binary >CF.diff &&
+
+       git diff-tree -p --full-index master binary >B-index.diff &&
+       git diff-tree -p -C --full-index master binary >C-index.diff &&
+
+       git init other-repo &&
+       (cd other-repo &&
+        git fetch .. master &&
+        git reset --hard FETCH_HEAD
+       )
+"
 
 test_expect_success 'stat binary diff -- should not fail.' \
-       'git-checkout master
+       'git checkout master &&
         git apply --stat --summary B.diff'
 
 test_expect_success 'stat binary diff (copy) -- should not fail.' \
-       'git-checkout master
+       'git checkout master &&
         git apply --stat --summary C.diff'
 
 test_expect_success 'check binary diff -- should fail.' \
-       'git-checkout master &&
+       'git checkout master &&
         test_must_fail git apply --check B.diff'
 
 test_expect_success 'check binary diff (copy) -- should fail.' \
-       'git-checkout master &&
+       'git checkout master &&
         test_must_fail git apply --check C.diff'
 
 test_expect_success \
        'check incomplete binary diff with replacement -- should fail.' '
-       git-checkout master &&
+       git checkout master &&
        test_must_fail git apply --check --allow-binary-replacement B.diff
 '
 
 test_expect_success \
     'check incomplete binary diff with replacement (copy) -- should fail.' '
-        git-checkout master &&
+        git checkout master &&
         test_must_fail git apply --check --allow-binary-replacement C.diff
 '
 
 test_expect_success 'check binary diff with replacement.' \
-       'git-checkout master
+       'git checkout master &&
         git apply --check --allow-binary-replacement BF.diff'
 
 test_expect_success 'check binary diff with replacement (copy).' \
-       'git-checkout master
+       'git checkout master &&
         git apply --check --allow-binary-replacement CF.diff'
 
 # Now we start applying them.
 
 do_reset () {
        rm -f file? &&
-       git-reset --hard &&
-       git-checkout -f master
+       git reset --hard &&
+       git checkout -f master
 }
 
 test_expect_success 'apply binary diff -- should fail.' \
@@ -98,6 +109,22 @@ test_expect_success 'apply binary diff (copy) -- should fail.' \
        'do_reset &&
         test_must_fail git apply --index C.diff'
 
+test_expect_success 'apply binary diff with full-index' '
+       do_reset &&
+       git apply B-index.diff
+'
+
+test_expect_success 'apply binary diff with full-index (copy)' '
+       do_reset &&
+       git apply C-index.diff
+'
+
+test_expect_success 'apply full-index binary diff in new repo' '
+       (cd other-repo &&
+        do_reset &&
+        test_must_fail git apply ../B-index.diff)
+'
+
 test_expect_success 'apply binary diff without replacement.' \
        'do_reset &&
         git apply BF.diff'