Home | History | Annotate | Line # | Download | only in gzip
t_gzip.sh revision 1.3
      1  1.3    martin # $NetBSD: t_gzip.sh,v 1.3 2024/10/15 17:15:47 martin 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.2  christos atf_test_case lzip
    104  1.2  christos lzip_head()
    105  1.2  christos {
    106  1.2  christos 	atf_set "descr" "Checks lzip compression levels (PR/58223)"
    107  1.3    martin 	atf_set "require.user" "root"
    108  1.3    martin 	atf_set "require.progs" "lzip"
    109  1.2  christos }
    110  1.2  christos lzip_body()
    111  1.2  christos {
    112  1.2  christos 	n=games.tar
    113  1.2  christos 	tar -C /usr/games -cf games.tar .
    114  1.2  christos 	for i in $(jot 10 0 9); do
    115  1.2  christos 		f=$n.$i.lz
    116  1.2  christos 		lzip -$ic < $n > $f
    117  1.2  christos 		gunzip -t $f > /dev/null
    118  1.2  christos 	done
    119  1.2  christos }
    120  1.2  christos 
    121  1.1    jruoho atf_init_test_cases()
    122  1.1    jruoho {
    123  1.1    jruoho 	atf_add_test_case concatenated
    124  1.1    jruoho 	atf_add_test_case pipe
    125  1.1    jruoho 	atf_add_test_case truncated
    126  1.1    jruoho 	atf_add_test_case crcerror
    127  1.1    jruoho 	atf_add_test_case good
    128  1.2  christos 	atf_add_test_case lzip
    129  1.1    jruoho }
    130