dpkg (1.18.25) stretch; urgency=medium
[dpkg] / t-func / deb-format.at
CommitLineData
1479465f
GJ
1AT_TESTED([dpkg-deb])
2
3AT_SETUP([dpkg-deb options])
4AT_KEYWORDS([dpkg-deb command-line])
5AT_CHECK([dpkg-deb --help], [], [ignore])
6AT_CLEANUP
7
8AT_SETUP([dpkg-deb .deb format])
9AT_KEYWORDS([dpkg-deb deb])
10
11DPKG_GEN_CONTROL([pkg-deb-format])
12DPKG_MOD_CONTROL([pkg-deb-format],
13 [s/^Description:.*$/& - deb format support/])
14AT_DATA([pkg-deb-format/file-templ], [test
15])
16AT_CHECK([
17# Initialize the template package
18mv pkg-deb-format pkg-templ
19chmod -R u+w pkg-templ
20find pkg-templ | xargs touch -t 197001010100.00
21$ASROOT dpkg-deb --uniform-compression -Znone -b pkg-templ >/dev/null
22
23# Extract the base members
24ar x pkg-templ.deb
25gzip -c control.tar >control.tar.gz
26gzip -c data.tar >data.tar.gz
27xz -c control.tar >control.tar.xz
28xz -c data.tar >data.tar.xz
29bzip2 -c data.tar >data.tar.bz2
30lzma -c data.tar >data.tar.lzma
31touch _ignore
32touch unknown
33])
34
35AT_CHECK([
36# Test debian-binary with 2.x versions
37cp pkg-templ.deb pkg-version-2x.deb
38echo 2.999 >debian-binary
39ar rc pkg-version-2x.deb debian-binary
40ar t pkg-version-2x.deb
41ar x pkg-templ.deb debian-binary
42# XXX: Ideally we would have no need to strip trailing spaces.
43dpkg-deb -I pkg-version-2x.deb | sed -e 's/ *$//'
44], [], [debian-binary
45control.tar
46data.tar
47 new debian package, version 2.999.
48 size 20674 bytes: control archive=10240 bytes.
49 193 bytes, 7 lines control
50 Package: pkg-deb-format
51 Version: 0.0-1
52 Section: test
53 Priority: extra
54 Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
55 Architecture: all
56 Description: test package - deb format support
57])
58
59AT_CHECK([
60# Test debian-binary with extra lines
61cp pkg-templ.deb pkg-magic-extra.deb
62echo "extra line" >>debian-binary
63ar rc pkg-magic-extra.deb debian-binary
64ar t pkg-magic-extra.deb
65ar x pkg-templ.deb debian-binary
66# XXX: Ideally we would have no need to strip trailing spaces.
67dpkg-deb -I pkg-magic-extra.deb | sed -e 's/ *$//'
68], [], [debian-binary
69control.tar
70data.tar
71 new debian package, version 2.0.
72 size 20684 bytes: control archive=10240 bytes.
73 193 bytes, 7 lines control
74 Package: pkg-deb-format
75 Version: 0.0-1
76 Section: test
77 Priority: extra
78 Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
79 Architecture: all
80 Description: test package - deb format support
81])
82
83AT_CHECK([
84# Test missing debian-binary member
85cp pkg-templ.deb pkg-missing-magic.deb
86ar d pkg-missing-magic.deb debian-binary
87ar t pkg-missing-magic.deb
88dpkg-deb -I pkg-missing-magic.deb
89], [2], [control.tar
90data.tar
91], [dpkg-deb: error: file 'pkg-missing-magic.deb' is not a debian binary archive (try dpkg-split?)
92])
93
94AT_CHECK([
95# Test missing control member
96cp pkg-templ.deb pkg-missing-control.deb
97ar d pkg-missing-control.deb control.tar
98ar t pkg-missing-control.deb
99dpkg-deb -I pkg-missing-control.deb
100], [2], [debian-binary
101data.tar
102], [dpkg-deb: error: archive 'pkg-missing-control.deb' has premature member 'data.tar' before 'control.tar', giving up
103])
104
105AT_CHECK([
106# Test missing data member
107cp pkg-templ.deb pkg-missing-data.deb
108ar d pkg-missing-data.deb data.tar
109ar t pkg-missing-data.deb
110dpkg-deb -c pkg-missing-data.deb
111], [2], [debian-binary
112control.tar
113], [dpkg-deb: error: unexpected end of file in archive member header in pkg-missing-data.deb
114])
115
116AT_CHECK([
117# Test mixed member (index 1)
118cp pkg-templ.deb pkg-mixed-1-member.deb
119ar ra debian-binary pkg-mixed-1-member.deb unknown
120ar t pkg-mixed-1-member.deb
121dpkg-deb -I pkg-mixed-1-member.deb
122], [2], [debian-binary
123unknown
124control.tar
125data.tar
126], [dpkg-deb: error: archive 'pkg-mixed-1-member.deb' has premature member 'unknown' before 'control.tar', giving up
127])
128
129AT_CHECK([
130# Test mixed member (index 2)
131cp pkg-templ.deb pkg-mixed-2-member.deb
132ar ra control.tar pkg-mixed-2-member.deb unknown
133ar t pkg-mixed-2-member.deb
134dpkg-deb -c pkg-mixed-2-member.deb
135], [2], [debian-binary
136control.tar
137unknown
138data.tar
139], [dpkg-deb: error: archive 'pkg-mixed-2-member.deb' has premature member 'unknown' before 'data.tar', giving up
140])
141
142AT_CHECK([
143# Test swapped control and data members
144cp pkg-templ.deb pkg-swap-members.deb
145ar ma data.tar pkg-swap-members.deb control.tar
146ar t pkg-swap-members.deb
147dpkg-deb -I pkg-swap-members.deb
148], [2], [debian-binary
149data.tar
150control.tar
151], [dpkg-deb: error: archive 'pkg-swap-members.deb' has premature member 'data.tar' before 'control.tar', giving up
152])
153
154AT_CHECK([
155# Test extra member
156cp pkg-templ.deb pkg-extra-member.deb
157ar q pkg-extra-member.deb unknown
158ar t pkg-extra-member.deb
159# XXX: Ideally we would have no need to strip trailing spaces.
160dpkg-deb -I pkg-extra-member.deb | sed -e 's/ *$//'
161], [], [debian-binary
162control.tar
163data.tar
164unknown
165 new debian package, version 2.0.
166 size 20732 bytes: control archive=10240 bytes.
167 193 bytes, 7 lines control
168 Package: pkg-deb-format
169 Version: 0.0-1
170 Section: test
171 Priority: extra
172 Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
173 Architecture: all
174 Description: test package - deb format support
175])
176
177AT_CHECK([
178# Test _ member
179cp pkg-templ.deb pkg-under-member.deb
180ar ra debian-binary pkg-under-member.deb _ignore
181ar t pkg-under-member.deb
182# XXX: Ideally we would have no need to strip trailing spaces.
183dpkg-deb -I pkg-under-member.deb | sed -e 's/ *$//'
184], [], [debian-binary
185_ignore
186control.tar
187data.tar
188 new debian package, version 2.0.
189 size 20732 bytes: control archive=10240 bytes.
190 193 bytes, 7 lines control
191 Package: pkg-deb-format
192 Version: 0.0-1
193 Section: test
194 Priority: extra
195 Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
196 Architecture: all
197 Description: test package - deb format support
198])
199
200AT_CHECK([
201# Test data.tar.bad member
202dd if=/dev/zero of=data.tar.bad bs=1K count=4 status=none
203ar rc pkg-data-bad.deb debian-binary control.tar.gz data.tar.bad
204ar t pkg-data-bad.deb
205dpkg-deb -c pkg-data-bad.deb
206], [2], [debian-binary
207control.tar.gz
208data.tar.bad
209], [dpkg-deb: error: archive 'pkg-data-bad.deb' uses unknown compression for member 'data.tar.bad', giving up
210])
211
212AT_CHECK([
213# Test control.tar member
214ar rc pkg-control-none.deb debian-binary control.tar data.tar
215ar t pkg-control-none.deb
216# XXX: Ideally we would have no need to strip trailing spaces.
217dpkg-deb -I pkg-control-none.deb | sed -e 's/ *$//'
218], [], [debian-binary
219control.tar
220data.tar
221 new debian package, version 2.0.
222 size 20672 bytes: control archive=10240 bytes.
223 193 bytes, 7 lines control
224 Package: pkg-deb-format
225 Version: 0.0-1
226 Section: test
227 Priority: extra
228 Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
229 Architecture: all
230 Description: test package - deb format support
231])
232
233AT_CHECK([
234# Test control.tar.xz member
235ar rc pkg-control-xz.deb debian-binary control.tar.xz data.tar.xz
236ar t pkg-control-xz.deb
237dpkg-deb -c pkg-control-xz.deb
238], [], [debian-binary
239control.tar.xz
240data.tar.xz
241drwxr-xr-x root/root 0 1970-01-01 00:00 ./
242-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
243])
244
245AT_CHECK([
246# Test data.tar member
247ar rc pkg-data-none.deb debian-binary control.tar.gz data.tar
248ar t pkg-data-none.deb
249dpkg-deb -c pkg-data-none.deb
250], [], [debian-binary
251control.tar.gz
252data.tar
253drwxr-xr-x root/root 0 1970-01-01 00:00 ./
254-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
255])
256
257AT_CHECK([
258# Test data.tar.gz member
259ar rc pkg-data-gz.deb debian-binary control.tar.gz data.tar.gz
260ar t pkg-data-gz.deb
261dpkg-deb -c pkg-data-gz.deb
262], [], [debian-binary
263control.tar.gz
264data.tar.gz
265drwxr-xr-x root/root 0 1970-01-01 00:00 ./
266-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
267])
268
269AT_CHECK([
270# Test data.tar.xz member
271ar rc pkg-data-xz.deb debian-binary control.tar.gz data.tar.xz
272ar t pkg-data-xz.deb
273dpkg-deb -c pkg-data-xz.deb
274], [], [debian-binary
275control.tar.gz
276data.tar.xz
277drwxr-xr-x root/root 0 1970-01-01 00:00 ./
278-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
279])
280
281AT_CHECK([
282# Test data.tar.bz2 member
283ar rc pkg-data-bz2.deb debian-binary control.tar.gz data.tar.bz2
284ar t pkg-data-bz2.deb
285dpkg-deb -c pkg-data-bz2.deb
286], [], [debian-binary
287control.tar.gz
288data.tar.bz2
289drwxr-xr-x root/root 0 1970-01-01 00:00 ./
290-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
291])
292
293AT_CHECK([
294# Test data.tar.lzma member
295ar rc pkg-data-lzma.deb debian-binary control.tar.gz data.tar.lzma
296ar t pkg-data-lzma.deb
297dpkg-deb -c pkg-data-lzma.deb
298], [], [debian-binary
299control.tar.gz
300data.tar.lzma
301drwxr-xr-x root/root 0 1970-01-01 00:00 ./
302-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
303])
304
305AT_CHECK([
306# Test non-uniform data.tar/control.tar member compression
307ar rc pkg-mixed-comp.deb debian-binary control.tar.xz data.tar.gz
308ar t pkg-mixed-comp.deb
309# XXX: Ideally we would have no need to strip trailing spaces.
310dpkg-deb -I pkg-mixed-comp.deb | sed -e 's/ *$//'
311dpkg-deb -c pkg-mixed-comp.deb
312], [], [debian-binary
313control.tar.xz
314data.tar.gz
315 new debian package, version 2.0.
316 size 682 bytes: control archive=336 bytes.
317 193 bytes, 7 lines control
318 Package: pkg-deb-format
319 Version: 0.0-1
320 Section: test
321 Priority: extra
322 Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
323 Architecture: all
324 Description: test package - deb format support
325drwxr-xr-x root/root 0 1970-01-01 00:00 ./
326-rw-r--r-- root/root 5 1970-01-01 00:00 ./file-templ
327])
328
329AT_CLEANUP