diff options
Diffstat (limited to 'tests/tests/protocol-compat')
-rwxr-xr-x | tests/tests/protocol-compat | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/tests/protocol-compat b/tests/tests/protocol-compat new file mode 100755 index 0000000..fcbeedb --- /dev/null +++ b/tests/tests/protocol-compat @@ -0,0 +1,83 @@ +#!/bin/bash +set -e +. tests/lib +. $troot/lib-reprepro + +t-setup-import examplegit +t-tstunt-parsechangelog + +t-git-config dgit.default.distro foreign +t-git-config dgit-distro.foreign.cmd-git false + +prep () { + dscf=$tmp/mirror/pool/main/example_$v.dsc +} + +check () { + pd=$p.$suite + t-refs-same-start + + t-archive-none $p + t-archive-query $suite + + t-dgit clone $p $suite $pd + cd $pd + t-ref-head + + $1 + + local distro='' + t-dgit import-dsc $dscf +imported + t-ref-same refs/heads/imported + cd .. +} + +reset () { + cd .. + rm -rf $pd + mkdir $pd + cd $pd + git init +} + +: ---------- newer ---------- + +suite=sid +v=2.1 +prep + +perl -i~ -pe 's/^Dgit: .*/$& EXTRA DATA\n TO BE IGNORED/' $dscf + +check reset + +: ---------- newline ---------- + +suite=testing +v=2.0 +prep + +perl -i~ -pe 's/^(Dgit: \w+ \S+ \S+) (.*)/$1\n $2 EXTRA/' $dscf + +check reset + +: ---------- older ---------- + +suite=stable +v=1.2 +prep + +perl -i -pe 's/^(Dgit: \w+).*/$1/' $dscf + +check + +: ---------- expect fail ---------- + +pd=$p.fail + +t-git-config dgit.default.old-dsc-distro downstream + +t-expect-fail 'no configured url and .dsc provides no hint' \ +t-dgit clone $p $suite $pd + + +t-ok |