summaryrefslogtreecommitdiff
path: root/tests/tests/downstream-gitless
blob: 6b2df1bd3e2578bf6565cbe1308d87093c541074 (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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/bin/bash
set -e
. tests/lib
. $troot/lib-reprepro

t-dependencies reprepro
t-setup-import examplegit
t-tstunt-parsechangelog


# rewrite some things, so we test the rewriting code

mkdir map
cd map
git init
cd ..

record-map () {
	old=$(t-git-get-ref-exact "refs/original/$r")
	new=$(t-git-get-ref-exact "$r")
	if [ "$old" = "$new" ]; then return; fi
	echo >>$tmp/map/map "$old $new"
}

filter () {
	git filter-branch				\
		--msg-filter 'sed s/Sid/Spong/'		\
		--tag-name-filter cat			\
		^archive/test-dummy/2.0			\
		"$@"
	for r in "$@"; do
		record-map "$r"
	done
}

cd $p
filter				\
  refs/heads/master		\
  refs/remotes/dgit/dgit/sid

t-ref-head

cd ../git/$p.git
filter				\
  refs/dgit/sid

cd $tmp/map
git add map
git commit -m 'by test suite'
git push $tmp/git/$p.git master:refs/dgit-rewrite/map
cd ..


suitespecs=avon
t-reprepro-cfg ds- downstream
t-reprepro-setup ds-
distro=''


dscf=$tmp/mirror/pool/main/example_1.1.dsc
t-reprepro-includedsc avon $dscf ds-
t-reprepro-regen ds-


mkdir $p.import
cd $p.import
git init
t-dgit import-dsc $dscf x
cd ..

t-git-config dgit-suite.avon.distro downstream
t-git-config dgit-distro.downstream.git-check false

t-dgit clone example avon example.avon


perl -i -pe 's/ test-dummy / unknown-distro / if m/^Dgit:/' $dscf
cd $p.import

t-expect-fail 'hinted url with protocol file which is unsafe' \
t-dgit import-dsc $dscf xunk

t-git-config dgit.dsc-url-proto-ok.file true
t-dgit import-dsc $dscf xunk

cd ..


dscf=$tmp/mirror/pool/main/example_2.1.dsc
t-reprepro-includedsc avon $dscf ds-
t-reprepro-regen ds-


cd $p.avon
t-dgit fetch
t-ref-same refs/remotes/dgit/dgit/avon

cd ../$p.import
git init
t-dgit import-dsc $dscf +x
t-ref-same refs/heads/x
git show x | grep Spong

t-expect-fail 'Your git tree does not have that object' \
t-dgit --no-chase-dsc-distro import-dsc $dscf +y

cd ../$p
t-dgit --no-chase-dsc-distro import-dsc $dscf +y
git show y | grep Sid

t-ok