blob: c116278ee911613992c1e8dd16fe92123ee85d7a (
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
#!/bin/sh
set -e
TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
configarchitecture 'i386'
insertpackage 'unstable' 'unrelated' 'i386' '1'
insertpackage 'unstable' 'ancientstuff' 'all' '1'
insertpackage 'unstable' 'boringstuff' 'all' '1' '' '' 'shared short description'
insertpackage 'unstable' 'coolstuff' 'all' '1'
insertpackage 'unstable' 'dullstuff' 'all' '1' '' '' 'shared short description'
insertpackage 'unstable' 'evilstuff' 'all' '1'
insertpackage 'unstable' 'foostuff' 'all' '1' '' '' 'shared short description'
insertpackage 'unstable' 'goodstuff' 'all' '1'
insertpackage 'unstable' "longdesc" 'all' '1' '' '' "$(for i in $(seq 0 100); do printf '%s' 'lorem ipsum '; done)"
setupaptarchive --no-update
changetowebserver
testsuccess aptget update
PKGORDER='coolstuff foostuff coolstuff foostuff'
msgtest 'Prepare expectation for' 'aptcache show'
if aptcache show $PKGORDER | grep -v '^ ' > aptcacheshow.out 2>&1; then
msgpass
else
cat aptcacheshow.out || true
msgfail
fi
testsuccessequal '4' grep -c '^Package: ' aptcacheshow.out
msgtest 'Prepare expectation for' 'apt show'
if apt show $PKGORDER | grep -v -e '^ ' -e '^[A-Z][a-z]\+-Size: ' > aptshow.out 2>&1; then
msgpass
else
cat aptshow.out || true
msgfail
fi
testsuccessequal '4' grep -c '^Package: ' aptshow.out
rm -rf rootdir/var/lib/apt/lists
checkaptshow() {
testsuccess aptcache show $PKGORDER
sed -i -e 's#^Description: #Description-en: #' rootdir/tmp/testsuccess.output
testequal "$(cat aptcacheshow.out)
" grep -v '^ ' rootdir/tmp/testsuccess.output
testsuccess apt show $PKGORDER
sed -i -e 's#^Description-en: #Description: #' rootdir/tmp/testsuccess.output
testequal "$(cat aptshow.out)
" grep -v -e '^ ' -e '^[A-Z][a-z]\+-Size: ' rootdir/tmp/testsuccess.output
if [ -n "$(ls rootdir/var/lib/apt/lists/*Translation* 2>/dev/null)" ]; then
testsuccess find rootdir/var/lib/apt/lists/ -name '*Translation*' -delete
testsuccess aptcache show $PKGORDER
sed -i -e 's#^Description: #Description-en: #' rootdir/tmp/testsuccess.output
testequal "$(cat aptcacheshow.out)
" grep -v '^ ' rootdir/tmp/testsuccess.output
testsuccess apt show $PKGORDER
sed -i -e 's#^Description-en: #Description: #' rootdir/tmp/testsuccess.output
testequal "$(cat aptshow.out)
" grep -v -e '^ ' -e '^[A-Z][a-z]\+-Size: ' rootdir/tmp/testsuccess.output
fi
}
translationslisted() {
msgtest 'No download of non-existent locals' "$1"
export LC_ALL=""
testsuccess --nomsg aptget update -o Acquire::Languages=en
testfailure grep -q -e 'Translation-[^e][^n] ' rootdir/tmp/testsuccess.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
msgtest 'Download of existent locals' "$1"
testsuccess --nomsg aptget update
cp rootdir/tmp/testsuccess.output testsuccess.output
testsuccess grep -q -e 'Translation-en ' testsuccess.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
msgtest 'Download of en in LC_ALL=C' "$1"
export LC_ALL=C
testsuccess --nomsg aptget update
cp rootdir/tmp/testsuccess.output testsuccess.output
testsuccess grep -q -e 'Translation-en ' testsuccess.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
unset LC_ALL
msgtest 'Download of en as forced language' "$1"
testsuccess --nomsg aptget update -o Acquire::Languages=en
cp rootdir/tmp/testsuccess.output testsuccess.output
testsuccess grep -q -e 'Translation-en ' testsuccess.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
msgtest 'Download of nothing else in forced language' "$1"
testsuccess --nomsg aptget update -o Acquire::Languages=en
testfailure grep -q -e 'Translation-[^e][^n] ' rootdir/tmp/testsuccess.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
msgtest 'Download no Translation- if forced language is non-existent' "$1"
testsuccess --nomsg aptget update -o Acquire::Languages=ast_DE
testfailure grep -q -e 'Translation-' rootdir/tmp/testsuccess.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
msgtest 'Download of nothing if none is forced' "$1"
testsuccess --nomsg aptget update -o Acquire::Languages=none
testfailure grep -q -e 'Translation' rootdir/tmp/testsuccess.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
}
translationslisted 'with full Index'
# No Release file at all, so no records about Translation files
# (fallback to guessing)
find aptarchive \( -name 'Release' -o -name 'InRelease' \) -delete
echo 'Acquire::AllowInsecureRepositories "true";' > rootdir/etc/apt/apt.conf.d/allow-insecure-repositories.conf
msgtest 'Download of en as forced language' 'without Index'
testwarning --nomsg aptget update -o Acquire::Languages=en
testsuccess grep -q -e 'Translation-en ' rootdir/tmp/testwarning.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
msgtest 'Download of nothing else in forced language' 'without Index'
testwarning --nomsg aptget update -o Acquire::Languages=en
testfailure grep -q -e 'Translation-[^e][^n] ' rootdir/tmp/testwarning.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
msgtest 'Download of ast_DE as forced language' 'without Index'
testwarning --nomsg aptget update -o Acquire::Languages=ast_DE
testsuccess grep -q -e 'Translation-ast_DE$' rootdir/tmp/testwarning.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
msgtest 'Download of nothing else in forced language' 'without Index'
testwarning --nomsg aptget update -o Acquire::Languages=ast_DE
testfailure grep -q -e 'Translation-[^a][^s]' rootdir/tmp/testwarning.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
msgtest 'Download of nothing if none is forced' 'without Index'
testwarning --nomsg aptget update -o Acquire::Languages=none
testfailure grep -q -e 'Translation' rootdir/tmp/testwarning.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
mkdir -p rootdir/var/lib/apt/lists
touch rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_i18n_Translation-ast_DE
msgtest 'Download of builtin files' 'without Index'
testwarning --nomsg aptget update
testsuccess grep -q -e 'Translation-ast_DE' rootdir/tmp/testwarning.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
mkdir -p rootdir/var/lib/apt/lists
touch rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_i18n_Translation-ast_DE
msgtest 'Download of nothing (even builtin) if none is forced' 'without Index'
testwarning --nomsg aptget update -o Acquire::Languages=none
testfailure grep -q -e 'Translation' rootdir/tmp/testwarning.output
checkaptshow
rm -rf rootdir/var/lib/apt/lists
|