tests/t0107-snapshot.sh (view raw)
1#!/bin/sh
2
3test_description='Verify snapshot'
4. ./setup.sh
5
6test_expect_success 'get foo/snapshot/master.tar.gz' '
7 cgit_url "foo/snapshot/master.tar.gz" >tmp
8'
9
10test_expect_success 'check html headers' '
11 head -n 1 tmp |
12 grep "Content-Type: application/x-gzip" &&
13
14 head -n 2 tmp |
15 grep "Content-Disposition: inline; filename=.master.tar.gz."
16'
17
18test_expect_success 'strip off the header lines' '
19 strip_headers <tmp >master.tar.gz
20'
21
22test_expect_success 'verify gzip format' '
23 gunzip --test master.tar.gz
24'
25
26test_expect_success 'untar' '
27 rm -rf master &&
28 tar -xzf master.tar.gz
29'
30
31test_expect_success 'count files' '
32 ls master/ >output &&
33 test_line_count = 5 output
34'
35
36test_expect_success 'verify untarred file-5' '
37 grep "^5$" master/file-5 &&
38 test_line_count = 1 master/file-5
39'
40
41if test -n "$(which lzip 2>/dev/null)"; then
42 test_set_prereq LZIP
43else
44 say 'Skipping LZIP validation tests: lzip not found'
45fi
46
47test_expect_success LZIP 'get foo/snapshot/master.tar.lz' '
48 cgit_url "foo/snapshot/master.tar.lz" >tmp
49'
50
51test_expect_success LZIP 'check html headers' '
52 head -n 1 tmp |
53 grep "Content-Type: application/x-lzip" &&
54
55 head -n 2 tmp |
56 grep "Content-Disposition: inline; filename=.master.tar.lz."
57'
58
59test_expect_success LZIP 'strip off the header lines' '
60 strip_headers <tmp >master.tar.lz
61'
62
63test_expect_success LZIP 'verify lzip format' '
64 lzip --test master.tar.lz &&
65 cp master.tar.lz /tmp/.
66'
67
68test_expect_success LZIP 'untar' '
69 rm -rf master &&
70 tar --lzip -xf master.tar.lz
71'
72
73test_expect_success LZIP 'count files' '
74 ls master/ >output &&
75 test_line_count = 5 output
76'
77
78test_expect_success LZIP 'verify untarred file-5' '
79 grep "^5$" master/file-5 &&
80 test_line_count = 1 master/file-5
81'
82
83if test -n "$(which xz 2>/dev/null)"; then
84 test_set_prereq XZ
85else
86 say 'Skipping XZ validation tests: xz not found'
87fi
88
89test_expect_success XZ 'get foo/snapshot/master.tar.xz' '
90 cgit_url "foo/snapshot/master.tar.xz" >tmp
91'
92
93test_expect_success XZ 'check html headers' '
94 head -n 1 tmp |
95 grep "Content-Type: application/x-xz" &&
96
97 head -n 2 tmp |
98 grep "Content-Disposition: inline; filename=.master.tar.xz."
99'
100
101test_expect_success XZ 'strip off the header lines' '
102 strip_headers <tmp >master.tar.xz
103'
104
105test_expect_success XZ 'verify xz format' '
106 xz --test master.tar.xz &&
107 cp master.tar.xz /tmp/.
108'
109
110test_expect_success XZ 'untar' '
111 rm -rf master &&
112 tar --xz -xf master.tar.xz
113'
114
115test_expect_success XZ 'count files' '
116 ls master/ >output &&
117 test_line_count = 5 output
118'
119
120test_expect_success XZ 'verify untarred file-5' '
121 grep "^5$" master/file-5 &&
122 test_line_count = 1 master/file-5
123'
124
125if test -n "$(which zstd 2>/dev/null)"; then
126 test_set_prereq ZSTD
127else
128 say 'Skipping ZSTD validation tests: zstd not found'
129fi
130
131test_expect_success ZSTD 'get foo/snapshot/master.tar.zst' '
132 cgit_url "foo/snapshot/master.tar.zst" >tmp
133'
134
135test_expect_success ZSTD 'check html headers' '
136 head -n 1 tmp |
137 grep "Content-Type: application/x-zstd" &&
138
139 head -n 2 tmp |
140 grep "Content-Disposition: inline; filename=.master.tar.zst."
141'
142
143test_expect_success ZSTD 'strip off the header lines' '
144 strip_headers <tmp >master.tar.zst
145'
146
147test_expect_success ZSTD 'verify zstd format' '
148 zstd --test master.tar.zst &&
149 cp master.tar.zst /tmp/.
150'
151
152test_expect_success ZSTD 'untar' '
153 rm -rf master &&
154 tar --zstd -xf master.tar.zst
155'
156
157test_expect_success ZSTD 'count files' '
158 ls master/ >output &&
159 test_line_count = 5 output
160'
161
162test_expect_success ZSTD 'verify untarred file-5' '
163 grep "^5$" master/file-5 &&
164 test_line_count = 1 master/file-5
165'
166
167test_expect_success 'get foo/snapshot/master.zip' '
168 cgit_url "foo/snapshot/master.zip" >tmp
169'
170
171test_expect_success 'check HTML headers (zip)' '
172 head -n 1 tmp |
173 grep "Content-Type: application/x-zip" &&
174
175 head -n 2 tmp |
176 grep "Content-Disposition: inline; filename=.master.zip."
177'
178
179test_expect_success 'strip off the header lines (zip)' '
180 strip_headers <tmp >master.zip
181'
182
183if test -n "$(which unzip 2>/dev/null)"; then
184 test_set_prereq UNZIP
185else
186 say 'Skipping ZIP validation tests: unzip not found'
187fi
188
189test_expect_success UNZIP 'verify zip format' '
190 unzip -t master.zip
191'
192
193test_expect_success UNZIP 'unzip' '
194 rm -rf master &&
195 unzip master.zip
196'
197
198test_expect_success UNZIP 'count files (zip)' '
199 ls master/ >output &&
200 test_line_count = 5 output
201'
202
203test_expect_success UNZIP 'verify unzipped file-5' '
204 grep "^5$" master/file-5 &&
205 test_line_count = 1 master/file-5
206'
207
208test_done