X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2Flib;h=993ec36b647a44953d1a67d59cb536b7ca5a8969;hp=52aca71b6e27cb5818bba3f040f1f5bef76aca19;hb=127632098e58021e467fb56fa36466785f2cbe55;hpb=c660afba5804763cdd59811bac1915a8f2fd0904 diff --git a/tests/lib b/tests/lib index 52aca71b..993ec36b 100644 --- a/tests/lib +++ b/tests/lib @@ -114,7 +114,7 @@ t-grep-mpat () { t-expect-push-fail () { local mpat="$1"; shift - local triedpush=`git rev-parse HEAD` + local triedpush; triedpush=`git rev-parse HEAD` t-reporefs pre-push t-expect-fail "$mpat" "$@" @@ -191,9 +191,9 @@ 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` + local now; now=`git rev-parse HEAD` + local ancestor; ancestor=`git rev-parse $1^{}` + local mbase; mbase=`t-git-merge-base $ancestor $now` if [ x$mbase != x$ancestor ]; then fail "not ff $ancestor..$now, $mbase != $ancestor" fi @@ -203,7 +203,8 @@ 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") + local parents + parents=$(git show --pretty=format:' %P %H ' "$child") parent=$(git rev-parse "$parent~0") case "$parents" in *" $parent "*) ;; @@ -310,7 +311,7 @@ t-archive-query-aq () { local p=$2 local v=$3 local dscf=$4 - local sha=`sha256sum <$tmp/mirror/pool/$dscf` + local sha; sha=`sha256sum <$tmp/mirror/pool/$dscf` echo "${v} ${sha% -} $dscf" >>$tmp/aq/package.$suite.${p} t-aq-archive-updated $suite $p } @@ -528,18 +529,18 @@ t-git-get-ref () { t-ref-same-exact () { local name="$1" - local val=`t-git-get-ref-exact $name` + local val; val=`t-git-get-ref-exact $name` t-ref-same-val "$name" $val } t-ref-same () { local name="$1" - local val=`t-git-get-ref $name` + local val; val=`t-git-get-ref $name` t-ref-same-val "$name" $val } t-ref-head () { - local val=`git rev-parse HEAD` + local val; val=`git rev-parse HEAD` t-ref-same-val HEAD $val } @@ -589,11 +590,11 @@ t-format-ref () { t-sametree-parent () { local ref=$1 local parent - local ctree=$(t-format-ref '%T' "$ref") + local ctree; ctree=$(t-format-ref '%T' "$ref") while :; do local psame='' for parent in $(t-format-ref '%P' "$ref"); do - local ptree=$(t-format-ref '%T' "$parent") + local ptree; ptree=$(t-format-ref '%T' "$parent") if [ "x$ptree" = "x$ctree" ]; then psame+=" $parent" fi @@ -605,11 +606,11 @@ t-sametree-parent () { } t-check-pushed-master () { - local master=`t-git-get-ref refs/heads/master` + local master; master=`t-git-get-ref refs/heads/master` if [ x$master = x$t_ref_val ]; then return; fi if [ x$master = x ]; then fail "failed to push master"; fi # didn't update master, it must be not FF - local mbase=`t-git-merge-base $master $t_ref_val` + local mbase; mbase=`t-git-merge-base $master $t_ref_val` if [ x$mbase = x$master ]; then fail "failed to ff master"; fi } @@ -788,12 +789,41 @@ t-stunt-envvar () { ' } +t-tstunt--save-real () { + local f="$1" + case "$f" in + */*) return ;; + esac + + local rc + local real + set +e + real=$(type -p "$f") + rc=$? + set -e + + case $rc in + 1) return ;; + 0) ;; + *) fail "did not find $f on PATH $PATH" ;; + esac + + local varname=${f//[^_0-9a-zA-Z]/_} + varname=DGIT_TEST_REAL_${varname^^} + + eval " + : \${$varname:=\$real} + export $varname + " +} + t-tstunt () { local tstunt=$tmp/tstunt t-stunt-envvar PATH $tstunt t-stunt-envvar PERLLIB $tstunt local f for f in "$@"; do + t-tstunt--save-real $f f="./$f" local d="$tstunt/${f%/*}" mkdir -p $d @@ -810,8 +840,6 @@ t-tstunt-lintian () { } t-tstunt-debuild () { - : ${DGIT_TEST_REAL_DEBUILD:=$(type -p debuild)} - export DGIT_TEST_REAL_DEBUILD t-tstunt debuild } @@ -822,7 +850,7 @@ t-incoming-dsc () { t-ref-dsc-dgit () { t-incoming-dsc - local val=`t-822-field $incoming_dsc Dgit` + local val; val=`t-822-field $incoming_dsc Dgit` perl -e '$_=shift @ARGV; die "Dgit $_ ?" unless m/^\w+\b/;' "$val" t-ref-same-val $incoming_dsc "$val" } @@ -898,6 +926,15 @@ t-gbp-example-prep () { remotes/dgit/dgit/sid } +t-make-badcommit () { + badcommit=$( + git cat-file commit HEAD | \ + perl -pe 's/^committer /commiter /' | \ + git hash-object -w -t commit --stdin + ) + t-expect-fsck-fail $badcommit +} + t-commit () { local msg=$1 v=${2:-${majorv:-1}.$revision}