chiark / gitweb /
test suite: Test bad commit defence in drs-push-rejects
[dgit.git] / tests / tests / drs-push-rejects
index 07abf4aec8e1cf7dc95755b529a3c9b7965d73d4..7b7c5f32a2a3c8e093e5f0b0669055c01e6777e1 100755 (executable)
@@ -139,6 +139,18 @@ mktag
 mustfail 'tag name in tag is wrong' \
        refs/tags/$tagpfx/wombat:refs/tags/$tagpfx/$version $push_spec1
 
+echo ====
+badcommit=$(
+       git cat-file commit HEAD | \
+       perl -pe 's/^committer.*\n//' | \
+       git hash-object -w -t commit --stdin
+)
+git checkout -b broken $badcommit
+prep unstable sid
+mktag
+mustfail "corrupted object $badcommit" $push_spec
+
+git checkout dgit/sid
 prep unstable sid
 mktag
 mustsucceed $push_spec # succeeds
@@ -149,6 +161,12 @@ mustfail 'push is missing head ref update' $push_spec1 +$push_spec2
 git commit --allow-empty -m 'Dummy update'
 mktag
 mustfail 'not replacing previously-pushed version' +$push_spec1 +$push_spec2
+
+t-newtag
+re-prep
+mktag
+mustfail 'not replacing previously-pushed version' +$push_spec1 +$push_spec2
+
 git reset --hard HEAD~
 
 prep_dm_mangle () {