summaryrefslogtreecommitdiff
path: root/tests/tests/badcommit-rewrite
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tests/badcommit-rewrite')
-rwxr-xr-xtests/tests/badcommit-rewrite47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/tests/badcommit-rewrite b/tests/tests/badcommit-rewrite
new file mode 100755
index 0000000..b7fc701
--- /dev/null
+++ b/tests/tests/badcommit-rewrite
@@ -0,0 +1,47 @@
+#!/bin/bash
+set -e
+. tests/lib
+
+t-setup-import examplegit
+t-tstunt-parsechangelog
+
+cd example
+
+suite=stable
+
+t-commit 'No changes, just send to stable' '' stable
+
+t-make-badcommit
+git reset --hard $badcommit
+
+t-dgit -wgf build
+t-dgit push --overwrite=1.2 stable
+t-archive-process-incoming stable
+
+rstable=refs/remotes/dgit/dgit/stable
+
+t-dgit fetch stable
+t-has-parent-or-is $rstable $badcommit
+
+fixup=${DGIT_BADCOMMIT_FIXUP-dgit-badcommit-fixup}
+
+cd $tmp/git/$p.git
+$fixup --real
+
+cd $tmp/$p
+git symbolic-ref HEAD >../sym.before
+git rev-parse HEAD >../ref.before
+
+$fixup --real
+
+git symbolic-ref HEAD >../sym.after
+git rev-parse HEAD >../ref.after
+diff ../sym.before ../sym.after
+set +e; diff ../ref.before ../ref.after; rc=$?; set -e; test $rc = 1
+
+t-dgit fetch stable
+
+t-expect-fail "child $rstable lacks parent $badcommit" \
+t-has-parent-or-is $rstable $badcommit
+
+t-ok