all repos — cgit @ cc230bf04456cc0ca82c6251b1624425eb7a7153

a hyperfast web frontend for git written in c

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