Home | History | Annotate | Line # | Download | only in gzip
t_gzip.sh revision 1.1.46.1
      1  1.1.46.1  perseant # $NetBSD: t_gzip.sh,v 1.1.46.1 2025/08/02 05:58:13 perseant Exp $
      2       1.1    jruoho #
      3       1.1    jruoho # Copyright (c) 2008 The NetBSD Foundation, Inc.
      4       1.1    jruoho # All rights reserved.
      5       1.1    jruoho #
      6       1.1    jruoho # Redistribution and use in source and binary forms, with or without
      7       1.1    jruoho # modification, are permitted provided that the following conditions
      8       1.1    jruoho # are met:
      9       1.1    jruoho # 1. Redistributions of source code must retain the above copyright
     10       1.1    jruoho #    notice, this list of conditions and the following disclaimer.
     11       1.1    jruoho # 2. Redistributions in binary form must reproduce the above copyright
     12       1.1    jruoho #    notice, this list of conditions and the following disclaimer in the
     13       1.1    jruoho #    documentation and/or other materials provided with the distribution.
     14       1.1    jruoho #
     15       1.1    jruoho # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     16       1.1    jruoho # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     17       1.1    jruoho # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     18       1.1    jruoho # PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     19       1.1    jruoho # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     20       1.1    jruoho # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     21       1.1    jruoho # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     22       1.1    jruoho # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     23       1.1    jruoho # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     24       1.1    jruoho # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     25       1.1    jruoho # POSSIBILITY OF SUCH DAMAGE.
     26       1.1    jruoho #
     27       1.1    jruoho 
     28       1.1    jruoho atf_test_case concatenated
     29       1.1    jruoho concatenated_head()
     30       1.1    jruoho {
     31       1.1    jruoho 	atf_set "descr" "Checks concatenated gzipped data"
     32       1.1    jruoho }
     33       1.1    jruoho concatenated_body()
     34       1.1    jruoho {
     35       1.1    jruoho 	echo -n "aaaa" | gzip > tmp.gz
     36       1.1    jruoho 	echo -n "bbbb" | gzip >> tmp.gz
     37       1.1    jruoho 
     38       1.1    jruoho 	atf_check -o inline:"aaaabbbb" gzip -d tmp.gz -c
     39       1.1    jruoho }
     40       1.1    jruoho 
     41       1.1    jruoho atf_test_case pipe
     42       1.1    jruoho pipe_head()
     43       1.1    jruoho {
     44       1.1    jruoho 	atf_set "descr" "Checks input from pipe"
     45       1.1    jruoho }
     46       1.1    jruoho pipe_body()
     47       1.1    jruoho {
     48       1.1    jruoho 	atf_check -x "dd if=/dev/zero count=102400 2>/dev/null \
     49       1.1    jruoho | gzip -c | dd bs=1 2>/dev/null | gzip -tc"
     50       1.1    jruoho }
     51       1.1    jruoho 
     52       1.1    jruoho atf_test_case truncated
     53       1.1    jruoho truncated_head()
     54       1.1    jruoho {
     55       1.1    jruoho 	atf_set "descr" "Checks that gzip fails on truncated data"
     56       1.1    jruoho }
     57       1.1    jruoho truncated_body()
     58       1.1    jruoho {
     59       1.1    jruoho 	cat >truncated.gz.uue <<EOF
     60       1.1    jruoho begin-base64 644 truncated.gz
     61       1.1    jruoho H4sIAAAAAAAAA0tMSk7hAgCspIpYCg==
     62       1.1    jruoho ====
     63       1.1    jruoho EOF
     64       1.1    jruoho 	uudecode -m truncated.gz.uue
     65       1.1    jruoho 
     66       1.1    jruoho 	atf_check -s ne:0 -e ignore gzip -d truncated.gz
     67       1.1    jruoho }
     68       1.1    jruoho 
     69       1.1    jruoho atf_test_case crcerror
     70       1.1    jruoho crcerror_head()
     71       1.1    jruoho {
     72       1.1    jruoho 	atf_set "descr" "Checks that gzip fails on crc error"
     73       1.1    jruoho }
     74       1.1    jruoho crcerror_body()
     75       1.1    jruoho {
     76       1.1    jruoho 	cat >crcerror.gz.uue <<EOF
     77       1.1    jruoho begin-base64 644 crcerror.gz
     78       1.1    jruoho H4sIAAAAAAAAA0tMSk7hAgCspFhYBQAAAA==
     79       1.1    jruoho ====
     80       1.1    jruoho EOF
     81       1.1    jruoho 	uudecode -m crcerror.gz.uue
     82       1.1    jruoho 
     83       1.1    jruoho 	atf_check -s ne:0 -e ignore gzip -d crcerror.gz
     84       1.1    jruoho }
     85       1.1    jruoho 
     86       1.1    jruoho atf_test_case good
     87       1.1    jruoho good_head()
     88       1.1    jruoho {
     89       1.1    jruoho 	atf_set "descr" "Checks decompressing correct file"
     90       1.1    jruoho }
     91       1.1    jruoho good_body()
     92       1.1    jruoho {
     93       1.1    jruoho 	cat >good.gz.uue <<EOF
     94       1.1    jruoho begin-base64 644 good.gz
     95       1.1    jruoho H4sICC8G8UAAA2FiY2QAS0xKTuECAKykilgFAAAA
     96       1.1    jruoho ====
     97       1.1    jruoho EOF
     98       1.1    jruoho 	uudecode -m good.gz.uue
     99       1.1    jruoho 
    100       1.1    jruoho 	atf_check gzip -d good.gz
    101       1.1    jruoho }
    102       1.1    jruoho 
    103  1.1.46.1  perseant atf_test_case lzip
    104  1.1.46.1  perseant lzip_head()
    105  1.1.46.1  perseant {
    106  1.1.46.1  perseant 	atf_set "descr" "Checks lzip compression levels (PR/58223)"
    107  1.1.46.1  perseant 	atf_set "require.progs" "lzip"
    108  1.1.46.1  perseant }
    109  1.1.46.1  perseant lzip_body()
    110  1.1.46.1  perseant {
    111  1.1.46.1  perseant 	n=net_tests.tar
    112  1.1.46.1  perseant 	tar -C /usr/tests/net -cf $n .
    113  1.1.46.1  perseant 	for i in $(jot 10 0 9); do
    114  1.1.46.1  perseant 		f=$n.$i.lz
    115  1.1.46.1  perseant 		lzip -$ic < $n > $f
    116  1.1.46.1  perseant 		gunzip -t $f > /dev/null
    117  1.1.46.1  perseant 	done
    118  1.1.46.1  perseant }
    119  1.1.46.1  perseant 
    120       1.1    jruoho atf_init_test_cases()
    121       1.1    jruoho {
    122       1.1    jruoho 	atf_add_test_case concatenated
    123       1.1    jruoho 	atf_add_test_case pipe
    124       1.1    jruoho 	atf_add_test_case truncated
    125       1.1    jruoho 	atf_add_test_case crcerror
    126       1.1    jruoho 	atf_add_test_case good
    127  1.1.46.1  perseant 	atf_add_test_case lzip
    128       1.1    jruoho }
    129