X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Flib;h=bd83be70a69d930a54af356a763c4ad2071718e0;hb=dccb73b082268949abbc074e9fe89d6ec294fd15;hp=ef2a8d56f36459aafb19a201101937019d61eb0d;hpb=998585898243fcead22928f903331412091936cb;p=dgit.git diff --git a/tests/lib b/tests/lib index ef2a8d56..bd83be70 100644 --- a/tests/lib +++ b/tests/lib @@ -7,11 +7,28 @@ set -o pipefail . tests/lib-core . tests/lib-restricts +t-report-failure () { + set +x + rc=$1 + cat <&2 +TEST FAILED +funcs: ${FUNCNAME[*]} +lines: ${BASH_LINENO[*]} +files: ${BASH_SOURCE[*]} +END + exit 16 +} + +trap 'test $? = 0 || t-report-failure' EXIT + t-set-intree -: ${DGIT_TEST_DEBUG:=-D} +: ${DGIT_TEST_DEBUG=-D} export DGIT_TEST_DEBUG +export GIT_COMMITTER_DATE='1440253867 +0100' +export GIT_AUTHOR_DATE='1440253867 +0100' + root=`pwd` troot=$root/tests testname="${DGIT_TEST_TESTNAME-${0##*/}}" @@ -45,6 +62,13 @@ incoming = $tmp/incoming run_dinstall = 0 END +: ${tagpfx:=test-dummy} + +t-git-next-date () { + GIT_COMMITTER_DATE="$(( ${GIT_COMMITTER_DATE%% *} + 1 )) ${GIT_COMMITTER_DATE#* }" + GIT_AUTHOR_DATE="$GIT_COMMITTER_DATE" +} + t-expect-fail () { local mpat="$1"; shift @@ -126,7 +150,7 @@ t-untar () { local tarfile=$1.tar local edittree=$1.edit if test -d "$edittree"; then - cp -al "$edittree"/* . + cp -a "$edittree"/* . else tar xf "$tarfile" fi @@ -229,7 +253,8 @@ t-archive-updated () { "filename" => "$4", }; END { - print to_json \@v or die $!; + my $json = JSON->new->canonical(); + print $json->encode(\@v) or die $!; } ' } @@ -377,7 +402,8 @@ t-ref-same-val () { case "$t_ref_val" in '') ;; "$val") ;; - *) fail "ref varies: $name: $val != $t_ref_val" ;; + *) fail "ref varies: $name:\ + ${val:-nothing} != ${t_ref_val:-nothing}" ;; esac t_ref_val="$val" } @@ -404,7 +430,7 @@ t-refs-notexist () { } t-v-tag () { - echo refs/tags/test-dummy/${v//\~/_} + echo refs/tags/$tagpfx/${v//\~/_} } t-check-pushed-master () { @@ -504,6 +530,52 @@ t-apply-diff () { | patch -p1 -u } +t-gbp-unapplied-pq2qc () { + # does `gbp pq export' + # commits the resulting debian/patches on qc/BRANCH + # leaves us on qc/BRANCH (eg "qc/quilt-tip")) + # qc/BRANCH is not fast-forwarding + + gbp pq export + + branch=`git symbolic-ref HEAD` + branch=${branch#refs/heads/} + + case "$branch" in + */*) fail "unexpected branch $branch" ;; + esac + + git branch -f qc/$branch + git checkout qc/$branch + git add debian/patches + git commit -m 'Commit patch queue' +} + +t-gbp-example-prep () { + t-archive example 1.0-1 + t-git-none + t-worktree 1.0 + + cd example + + t-dgit fetch + + git-checkout -b patch-queue/quilt-tip-2 patch-queue/quilt-tip + gbp pq rebase + + echo '/* some comment */' >>src.c + git add src.c + git commit -m 'Add a comment to an upstream file' + + t-gbp-unapplied-pq2qc + + t-commit 'some updates' 1.0-2 + + git merge -s ours \ + -m 'Pseudo-merge to make descendant of archive' \ + remotes/dgit/dgit/sid +} + t-commit () { local msg=$1 v=${2-1.$revision} @@ -522,6 +594,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 cp $troot/gnupg/{dd.gpg,dm.gpg,dm.txt} $tmp/. cp $troot/suites $tmp/. cp $troot/suites $tmp/suites-master @@ -543,6 +616,14 @@ t-drs () { ln -sf /bin/true $drs_dispatch/policy-hook } +t-newtag () { + export tagpfx=archive/test-dummy + t-git-config dgit-distro.test-dummy.dgit-tag-format new +} +t-oldtag () { + t-git-config dgit-distro.test-dummy.dgit-tag-format old +} + t-dsd () { t-drs t-git-config dgit-distro.test-dummy.ssh "$troot/dsd-ssh"