summaryrefslogtreecommitdiffstats
path: root/tests/onlysmalldeletes.test
blob: 6042eeb4e580b459ee3d04ad8093e7709888fc40 (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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
set -u
. "$TESTSDIR"/test.inc

mkdir conf
cat >conf/distributions <<EOF
Codename: test
Architectures: abacus source
Components: all

Codename: copy
Architectures: abacus source
Components: all
Pull: rule
EOF
touch conf/updates
cat >conf/pulls <<EOF
Name: rule
From: test
EOF
cat >conf/incoming <<EOF
Name: i
Tempdir: tmp
Incomingdir: i
Default: test
EOF
cat >conf/options <<EOF
onlysmalldeletes
EOF

mkdir i
cd i
for i in $(seq 1 40) ; do
PACKAGE=a$i EPOCH="" VERSION=$i REVISION="" SECTION="many" genpackage.sh
mv test.changes a$i.changes
done
cd ..

cat > pi.rules <<EOF
stdout
$(odb)
-v2*=Created directory "./tmp"
-v2*=Created directory "./pool"
-v2*=Created directory "./pool/all"
-v2*=Created directory "./pool/all/a"
-v0*=Exporting indices...
-v2*=Created directory "./dists"
-v2*=Created directory "./dists/test"
-v2*=Created directory "./dists/test/all"
-v2*=Created directory "./dists/test/all/binary-abacus"
-v6*= looking for changes in 'test|all|abacus'...
-v6*=  creating './dists/test/all/binary-abacus/Packages' (uncompressed,gzipped)
-v2*=Created directory "./dists/test/all/source"
-v6*= looking for changes in 'test|all|source'...
-v6*=  creating './dists/test/all/source/Sources' (gzipped)
EOF

for i in $(seq 1 40) ; do
cat >>pi.rules <<EOF
-v2*=Created directory "./pool/all/a/a$i"
$(ofa "pool/all/a/a${i}/a${i}_${i}.dsc")
$(ofa "pool/all/a/a${i}/a${i}_${i}.tar.gz")
$(ofa "pool/all/a/a${i}/a${i}_${i}_abacus.deb")
$(ofa "pool/all/a/a${i}/a${i}-addons_${i}_all.deb")
$(opa "a${i}" unset 'test' 'all' 'source' 'dsc')
$(opa "a${i}" x 'test' 'all' 'abacus' 'deb')
$(opa "a${i}-addons" x 'test' 'all' 'abacus' 'deb')
-v1*=deleting './i/a${i}.changes'...
-v1*=deleting './i/a${i}_${i}.dsc'...
-v1*=deleting './i/a${i}_${i}.tar.gz'...
-v1*=deleting './i/a${i}_${i}_abacus.deb'...
-v1*=deleting './i/a${i}-addons_${i}_all.deb'...
EOF
done

testrun pi -b . processincoming i
dodo rmdir i
rm pi.rules

cat >pull.rules <<EOF
stdout
-v0*=Calculating packages to pull...
-v3*=  pulling into 'copy|all|source'
-v5*=  looking what to get from 'test|all|source'
-v3*=  pulling into 'copy|all|abacus'
-v5*=  looking what to get from 'test|all|abacus'
-v0*=Installing (and possibly deleting) packages...
-v0*=Exporting indices...
-v2*=Created directory "./dists/copy"
-v2*=Created directory "./dists/copy/all"
-v2*=Created directory "./dists/copy/all/binary-abacus"
-v6*= looking for changes in 'copy|all|abacus'...
-v6*=  creating './dists/copy/all/binary-abacus/Packages' (uncompressed,gzipped)
-v2*=Created directory "./dists/copy/all/source"
-v6*= looking for changes in 'copy|all|source'...
-v6*=  creating './dists/copy/all/source/Sources' (gzipped)
EOF

for i in $(seq 1 40) ; do
cat >>pull.rules <<EOF
$(opa "a${i}" unset 'copy' 'all' 'source' 'dsc')
$(opa "a${i}" x 'copy' 'all' 'abacus' 'deb')
$(opa "a${i}-addons" x 'copy' 'all' 'abacus' 'deb')
EOF
done

testrun pull -b . pull
rm pull.rules

sed -e 's/Pull: rule/Pull: -/' -i conf/distributions

testrun - -b . pull 3<<EOF
stdout
-v0*=Calculating packages to pull...
-v3*=  pulling into 'copy|all|source'
-v5*=  marking everything to be deleted
-v3*=  pulling into 'copy|all|abacus'
#-v5*=  marking everything to be deleted
-v0*=Installing (and possibly deleting) packages...
stderr
*=Not processing 'copy' because of --onlysmalldeletes
EOF

sed -e 's/Pull: -/Update: -/' -i conf/distributions
testrun - -b . --noskipold update 3<<EOF
stdout
-v2*=Created directory "./lists"
-v0*=Calculating packages to get...
-v3*=  processing updates for 'copy|all|source'
-v5*=  marking everything to be deleted
-v3*=  processing updates for 'copy|all|abacus'
#-v5*=  marking everything to be deleted
stderr
*=Not processing updates for 'copy' because of --onlysmalldeletes!
EOF

rm -r conf
rm -r db
rm -r pool
rm -r dists
rmdir tmp
rmdir lists
testsuccess