chiark / gitweb /
dgit-maint-merge(7): Do not cross-reference nonexistent dgit-maint-rebase(7)
[dgit.git] / tests / lib
index 3fe3ab06af8e240a98b59b1cea874e4f49dfe18a..23daeace743e6e06e0fa36c5e81bdee43670eaa1 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -55,10 +55,6 @@ env -0 >$tmp/.save-env
 
 ln -f $troot/ssh ssh
 
-mkdir -p $tmp/gnupg
-cp $troot/gnupg/* $tmp/gnupg
-chmod go-rw $tmp/gnupg/*
-
 export DEBCHANGE_VENDOR=dpkg
 
 mkdir -p $tmp/incoming
@@ -69,7 +65,7 @@ incoming              = $tmp/incoming
 run_dinstall           = 0
 END
 
-: ${tagpfx:=test-dummy}
+: ${tagpfx:=archive/test-dummy}
 : ${suitespecs:=sid:unstable}
 
 t-git-next-date () {
@@ -192,6 +188,8 @@ t-git-merge-base () {
 }
 
 t-has-ancestor () {
+       # t-has-ancestor ANCESTOR
+       # (CHILD is implicit, HEAD)
        local now=`git rev-parse HEAD`
        local ancestor=`git rev-parse $1^{}`
        local mbase=`t-git-merge-base $ancestor $now`
@@ -200,6 +198,18 @@ t-has-ancestor () {
        fi
 }
 
+t-has-parent-or-is () {
+       # t-has-parent-or-is CHILD PARENT
+       local child=$1
+       local parent=$2
+       local parents=$(git show --pretty=format:' %P %H ' "$child")
+       parent=$(git rev-parse "$parent~0")
+       case "$parents" in
+       *" $parent "*)  ;;
+       *)      fail "child $child lacks parent $parent" ;;
+       esac
+}
+
 t-prep-newpackage () {
        t-select-package $1
        v=$2
@@ -282,7 +292,7 @@ t-archive-updated () {
 
 t-archive-process-incoming () {
        local suite=$1
-       mv $tmp/incoming/${p}_${v}[._]* $tmp/mirror/pool/main/
+       mv $tmp/incoming/${p}_* $tmp/mirror/pool/main/
        t-archive-query "$suite"
 }
 
@@ -479,17 +489,19 @@ t-ref-head () {
 t-ref-same-val () {
        local name="$1"
        local val=$2
-       case "$t_ref_val" in
-       '')             ;;
+       case "${t_ref_val-unset}" in
+       unset)          ;;
        "$val")         ;;
-       *)              fail "ref varies: $name:\
- ${val:-nothing} != ${t_ref_val:-nothing}" ;;
+       *)              fail "ref varies: ($name)\
+ ${val:-nothing} != ${t_ref_val:-nothing} (${t_ref_names[*]})" ;;
        esac
        t_ref_val="$val"
+       t_ref_names+=("$name")
 }
 
 t-refs-same-start () {
-       t_ref_val=''
+       unset t_ref_val
+       t_ref_names=()
 }
 
 t-refs-same () {
@@ -577,6 +589,7 @@ t-splitbrain-pushed-good--unpack () {
        mkdir t-unpack
        cd t-unpack
        ln -s $tmp/mirror/pool/main/*.orig*.tar* .
+       ln -s $tmp/incoming/*.orig*.tar* . ||:
        ln -s $incoming_dsc .
        ln -s ${incoming_dsc/.dsc/.debian.tar}* .
        dpkg-source "$@" -x *.dsc
@@ -606,6 +619,13 @@ t-splitbrain-pushed-good-start () {
        git merge-base --is-ancestor $dep14tag $dgittag
 
        t-refs-same-start
+       t-ref-same refs/heads/split.p
+       case "$(t-git-get-ref refs/heads/split.b)" in
+       "$t_ref_val") ;;
+       "$(git rev-parse refs/heads/split.p^0)") ;;
+       "$(git rev-parse refs/heads/split.p^1)") ;;
+       *) fail 'bad b/p' ;;
+       esac
        t-pushed-good-core
 
        t-incoming-dsc
@@ -829,7 +849,7 @@ t-drs () {
  t-git-config dgit-distro.test-dummy.git-url "ext::$troot/drs-git-ext %S "
  t-git-config dgit-distro.test-dummy.git-check true
  t-git-config dgit-distro.test-dummy.git-create true
- t-git-config dgit-distro.test-dummy.dgit-tag-format old,new
+ t-git-config dgit-distro.test-dummy.dgit-tag-format new,old,maint
        cp $troot/gnupg/{dd.gpg,dm.gpg,dm.txt} $tmp/.
        cp $troot/suites $tmp/.
        cp $troot/suites $tmp/suites-master
@@ -856,6 +876,7 @@ t-newtag () {
  t-git-config dgit-distro.test-dummy.dgit-tag-format new,maint
 }
 t-oldtag () {
+ export tagpfx=test-dummy
  t-git-config dgit-distro.test-dummy.dgit-tag-format old
 }
 
@@ -937,3 +958,8 @@ t-alt-test () {
        t-${t%%-*}
        t-chain-test "${t#*-}"
 }
+
+case "$0" in
+*/gnupg) ;;
+*)     t-setup-import gnupg    ;;
+esac