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
125test_expect_success 'get foo/snapshot/master.zip' '
126 cgit_url "foo/snapshot/master.zip" >tmp
127'
128
129test_expect_success 'check HTML headers (zip)' '
130 head -n 1 tmp |
131 grep "Content-Type: application/x-zip" &&
132
133 head -n 2 tmp |
134 grep "Content-Disposition: inline; filename=.master.zip."
135'
136
137test_expect_success 'strip off the header lines (zip)' '
138 strip_headers <tmp >master.zip
139'
140
141if test -n "$(which unzip 2>/dev/null)"; then
142 test_set_prereq UNZIP
143else
144 say 'Skipping ZIP validation tests: unzip not found'
145fi
146
147test_expect_success UNZIP 'verify zip format' '
148 unzip -t master.zip
149'
150
151test_expect_success UNZIP 'unzip' '
152 rm -rf master &&
153 unzip master.zip
154'
155
156test_expect_success UNZIP 'count files (zip)' '
157 ls master/ >output &&
158 test_line_count = 5 output
159'
160
161test_expect_success UNZIP 'verify unzipped file-5' '
162 grep "^5$" master/file-5 &&
163 test_line_count = 1 master/file-5
164'
165
166test_done