summaryrefslogtreecommitdiff
path: root/tests/tests/protocol-compat
blob: fcbeedb82d7cc02c4b786e32d4b407aa6b0c01a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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