about summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorChristian Hesse2020-02-26 09:12:21 +0100
committerJason A. Donenfeld2020-03-12 19:56:39 -0600
commit892ba8c3cc0617d2087a2337d8c6e71524d7b49c (patch)
tree9f230da21b5cb0443a3058da543da6b13c959f71 /tests
parenttests: add tests for xz compressed snapshots (diff)
downloadcgit-892ba8c3cc0617d2087a2337d8c6e71524d7b49c.tar.gz
cgit-892ba8c3cc0617d2087a2337d8c6e71524d7b49c.zip
ui-snapshot: add support for zstd compression
This patch adds support for zstd [0] compressed snapshots (*.tar.zst).
We enable multiple working threads (-T0), but keep default compression
level. The latter can be influenced by environment variable.

[0] https://www.zstd.net/

Signed-off-by: Christian Hesse <mail@eworm.de>
Diffstat (limited to 'tests')
-rwxr-xr-xtests/setup.sh2
-rwxr-xr-xtests/t0107-snapshot.sh42
2 files changed, 43 insertions, 1 deletions
diff --git a/tests/setup.sh b/tests/setup.sh index 334cca6..5879348 100755 --- a/tests/setup.sh +++ b/tests/setup.sh
@@ -104,7 +104,7 @@ virtual-root=/
104cache-root=$PWD/cache 104cache-root=$PWD/cache
105 105
106cache-size=1021 106cache-size=1021
107snapshots=tar.gz tar.bz tar.lz tar.xz zip 107snapshots=tar.gz tar.bz tar.lz tar.xz tar.zst zip
108enable-log-filecount=1 108enable-log-filecount=1
109enable-log-linecount=1 109enable-log-linecount=1
110summary-log=5 110summary-log=5
diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh index 84995d1..c164d3e 100755 --- a/tests/t0107-snapshot.sh +++ b/tests/t0107-snapshot.sh
@@ -122,6 +122,48 @@ test_expect_success XZ 'verify untarred file-5' '
122 test_line_count = 1 master/file-5 122 test_line_count = 1 master/file-5
123' 123'
124 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
125test_expect_success 'get foo/snapshot/master.zip' ' 167test_expect_success 'get foo/snapshot/master.zip' '
126 cgit_url "foo/snapshot/master.zip" >tmp 168 cgit_url "foo/snapshot/master.zip" >tmp
127' 169'