1*f80fa140Smartin# $NetBSD: t_gzip.sh,v 1.4 2024/10/15 18:09:31 martin Exp $ 228604916Sjruoho# 328604916Sjruoho# Copyright (c) 2008 The NetBSD Foundation, Inc. 428604916Sjruoho# All rights reserved. 528604916Sjruoho# 628604916Sjruoho# Redistribution and use in source and binary forms, with or without 728604916Sjruoho# modification, are permitted provided that the following conditions 828604916Sjruoho# are met: 928604916Sjruoho# 1. Redistributions of source code must retain the above copyright 1028604916Sjruoho# notice, this list of conditions and the following disclaimer. 1128604916Sjruoho# 2. Redistributions in binary form must reproduce the above copyright 1228604916Sjruoho# notice, this list of conditions and the following disclaimer in the 1328604916Sjruoho# documentation and/or other materials provided with the distribution. 1428604916Sjruoho# 1528604916Sjruoho# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 1628604916Sjruoho# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 1728604916Sjruoho# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1828604916Sjruoho# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 1928604916Sjruoho# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2028604916Sjruoho# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2128604916Sjruoho# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2228604916Sjruoho# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2328604916Sjruoho# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2428604916Sjruoho# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2528604916Sjruoho# POSSIBILITY OF SUCH DAMAGE. 2628604916Sjruoho# 2728604916Sjruoho 2828604916Sjruohoatf_test_case concatenated 2928604916Sjruohoconcatenated_head() 3028604916Sjruoho{ 3128604916Sjruoho atf_set "descr" "Checks concatenated gzipped data" 3228604916Sjruoho} 3328604916Sjruohoconcatenated_body() 3428604916Sjruoho{ 3528604916Sjruoho echo -n "aaaa" | gzip > tmp.gz 3628604916Sjruoho echo -n "bbbb" | gzip >> tmp.gz 3728604916Sjruoho 3828604916Sjruoho atf_check -o inline:"aaaabbbb" gzip -d tmp.gz -c 3928604916Sjruoho} 4028604916Sjruoho 4128604916Sjruohoatf_test_case pipe 4228604916Sjruohopipe_head() 4328604916Sjruoho{ 4428604916Sjruoho atf_set "descr" "Checks input from pipe" 4528604916Sjruoho} 4628604916Sjruohopipe_body() 4728604916Sjruoho{ 4828604916Sjruoho atf_check -x "dd if=/dev/zero count=102400 2>/dev/null \ 4928604916Sjruoho| gzip -c | dd bs=1 2>/dev/null | gzip -tc" 5028604916Sjruoho} 5128604916Sjruoho 5228604916Sjruohoatf_test_case truncated 5328604916Sjruohotruncated_head() 5428604916Sjruoho{ 5528604916Sjruoho atf_set "descr" "Checks that gzip fails on truncated data" 5628604916Sjruoho} 5728604916Sjruohotruncated_body() 5828604916Sjruoho{ 5928604916Sjruoho cat >truncated.gz.uue <<EOF 6028604916Sjruohobegin-base64 644 truncated.gz 6128604916SjruohoH4sIAAAAAAAAA0tMSk7hAgCspIpYCg== 6228604916Sjruoho==== 6328604916SjruohoEOF 6428604916Sjruoho uudecode -m truncated.gz.uue 6528604916Sjruoho 6628604916Sjruoho atf_check -s ne:0 -e ignore gzip -d truncated.gz 6728604916Sjruoho} 6828604916Sjruoho 6928604916Sjruohoatf_test_case crcerror 7028604916Sjruohocrcerror_head() 7128604916Sjruoho{ 7228604916Sjruoho atf_set "descr" "Checks that gzip fails on crc error" 7328604916Sjruoho} 7428604916Sjruohocrcerror_body() 7528604916Sjruoho{ 7628604916Sjruoho cat >crcerror.gz.uue <<EOF 7728604916Sjruohobegin-base64 644 crcerror.gz 7828604916SjruohoH4sIAAAAAAAAA0tMSk7hAgCspFhYBQAAAA== 7928604916Sjruoho==== 8028604916SjruohoEOF 8128604916Sjruoho uudecode -m crcerror.gz.uue 8228604916Sjruoho 8328604916Sjruoho atf_check -s ne:0 -e ignore gzip -d crcerror.gz 8428604916Sjruoho} 8528604916Sjruoho 8628604916Sjruohoatf_test_case good 8728604916Sjruohogood_head() 8828604916Sjruoho{ 8928604916Sjruoho atf_set "descr" "Checks decompressing correct file" 9028604916Sjruoho} 9128604916Sjruohogood_body() 9228604916Sjruoho{ 9328604916Sjruoho cat >good.gz.uue <<EOF 9428604916Sjruohobegin-base64 644 good.gz 9528604916SjruohoH4sICC8G8UAAA2FiY2QAS0xKTuECAKykilgFAAAA 9628604916Sjruoho==== 9728604916SjruohoEOF 9828604916Sjruoho uudecode -m good.gz.uue 9928604916Sjruoho 10028604916Sjruoho atf_check gzip -d good.gz 10128604916Sjruoho} 10228604916Sjruoho 103b79e8711Schristosatf_test_case lzip 104b79e8711Schristoslzip_head() 105b79e8711Schristos{ 106b79e8711Schristos atf_set "descr" "Checks lzip compression levels (PR/58223)" 10793df3849Smartin atf_set "require.progs" "lzip" 108b79e8711Schristos} 109b79e8711Schristoslzip_body() 110b79e8711Schristos{ 111*f80fa140Smartin n=net_tests.tar 112*f80fa140Smartin tar -C /usr/tests/net -cf $n . 113b79e8711Schristos for i in $(jot 10 0 9); do 114b79e8711Schristos f=$n.$i.lz 115b79e8711Schristos lzip -$ic < $n > $f 116b79e8711Schristos gunzip -t $f > /dev/null 117b79e8711Schristos done 118b79e8711Schristos} 119b79e8711Schristos 12028604916Sjruohoatf_init_test_cases() 12128604916Sjruoho{ 12228604916Sjruoho atf_add_test_case concatenated 12328604916Sjruoho atf_add_test_case pipe 12428604916Sjruoho atf_add_test_case truncated 12528604916Sjruoho atf_add_test_case crcerror 12628604916Sjruoho atf_add_test_case good 127b79e8711Schristos atf_add_test_case lzip 12828604916Sjruoho} 129