summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/tests/control2
-rwxr-xr-xtests/tests/gdr-merge70
2 files changed, 71 insertions, 1 deletions
diff --git a/debian/tests/control b/debian/tests/control
index e3274f2..1a4f510 100644
--- a/debian/tests/control
+++ b/debian/tests/control
@@ -20,7 +20,7 @@ Tests: gdr-diverge-nmu gdr-diverge-nmu-dgit gdr-edits gdr-import-dgit gdr-import
Tests-Directory: tests/tests
Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, chiark-utils-bin, bc, git-debrebase, git-buildpackage, faketime
-Tests: gdr-newupstream gdr-viagit
+Tests: gdr-merge gdr-newupstream gdr-viagit
Tests-Directory: tests/tests
Depends: chiark-utils-bin, git-debrebase, git-buildpackage, faketime
diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge
new file mode 100755
index 0000000..7a6ffdb
--- /dev/null
+++ b/tests/tests/gdr-merge
@@ -0,0 +1,70 @@
+#!/bin/bash
+set -e
+autoimport=
+. tests/lib
+
+t-dependencies NO-DGIT GDR
+
+t-tstunt-parsechangelog
+t-setup-import gdr-convert-gbp-noarchive
+
+: 'set up so t-git-debrebase runs gdr via git'
+
+case "$DGIT_GITDEBREBASE_TEST" in
+''|git-debrebase) ;;
+*)
+ t-tstunt
+ st=$tmp/tstunt/git-debrebase
+ export DGIT_GITDEBREBASE_TEST_REAL="$DGIT_GITDEBREBASE_TEST"
+ cat <<'END' >$st
+#!/bin/sh
+set -x
+exec "$DGIT_GITDEBREBASE_TEST_REAL" "$@"
+END
+ chmod +x $st
+ ;;
+esac
+
+DGIT_GITDEBREBASE_TEST='git debrebase'
+
+: 'do a simple test'
+
+cd $p
+
+t-gdr-prep-new-upstream 2.1
+git tag v2.1 upstream
+
+t-some-changes before
+t-git-debrebase quick
+
+git checkout -b other
+t-some-changes other '' -other
+
+git checkout master
+t-some-changes us-1 '' -us
+t-git-debrebase new-upstream 2.1
+t-some-changes us-2 '' -us
+t-git-debrebase quick
+
+git merge other
+
+t-some-changes after
+# xxx ^ commenting out this line produces an internal error
+
+t-expect-fail E:'general two-parent merge' \
+t-git-debrebase
+
+export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1
+
+t-git-debrebase
+
+# xxx want to check that we DTRT if we start out unstitched -
+# xxx should consider our ffq-prev as a parent
+# xxx or should we ? it's not a parent of the merge is it ?
+# xxx => user should prefer to make merges when stitched ?
+# xxx think about this later
+
+# t-gdr-good laundered
+# xxx ^ this does not work
+
+t-ok