Merge part of branch 'jc/upload-pack'
[gitweb.git] / t / t5400-send-pack.sh
index 19a8f122c75bc14e3bf421a5aeee0f2bd3ff7e83..f3694ac3c78e64b6b77ebfef4cb3e90f9fb6c32c 100755 (executable)
@@ -8,6 +8,9 @@ test_description='See why rewinding head breaks send-pack
 '
 . ./test-lib.sh
 
+touch cpio-test
+test_expect_success 'working cpio' 'echo cpio-test | cpio -o > /dev/null'
+
 cnt='1'
 test_expect_success setup '
        tree=$(git-write-tree) &&
@@ -18,29 +21,37 @@ test_expect_success setup '
        do
            sleep 1 &&
            commit=$(echo "Commit #$i" | git-commit-tree $tree -p $parent) &&
-           parent=$commit || exit
+           parent=$commit || return 1
        done &&
-       echo "$commit" >.git/HEAD &&
-       git clone -l ./. victim &&
+       git-update-ref HEAD "$commit" &&
+       git-clone -l ./. victim &&
        cd victim &&
-       git log &&
+       git-log &&
        cd .. &&
-       echo $zero >.git/HEAD &&
+       git-update-ref HEAD "$zero" &&
        parent=$zero &&
        for i in $cnt
        do
            sleep 1 &&
            commit=$(echo "Rebase #$i" | git-commit-tree $tree -p $parent) &&
-           parent=$commit || exit
+           parent=$commit || return 1
        done &&
-       echo "$commit" >.git/HEAD &&
+       git-update-ref HEAD "$commit" &&
        echo Rebase &&
-       git log'
+       git-log'
 
 test_expect_success \
         'pushing rewound head should not barf but require --force' ' 
        # should not fail but refuse to update.
-       git-send-pack ./victim/.git/ master &&
+       if git-send-pack ./victim/.git/ master
+       then
+               # now it should fail with Pasky patch
+               echo >&2 Gaah, it should have failed.
+               false
+       else
+               echo >&2 Thanks, it correctly failed.
+               true
+       fi &&
        if cmp victim/.git/refs/heads/master .git/refs/heads/master
        then
                # should have been left as it was!
@@ -52,3 +63,5 @@ test_expect_success \
        git-send-pack --force ./victim/.git/ master &&
        cmp victim/.git/refs/heads/master .git/refs/heads/master
 '
+
+test_done