xref: /freebsd/usr.bin/compress/tests/compress_test.sh (revision fd1c67ef4e9d271d267dbeaebe84d41626534204)
1*fd1c67efSJilles Tjoelker# Copyright (c) 2017 Jilles Tjoelker <jilles@FreeBSD.org>
2*fd1c67efSJilles Tjoelker# All rights reserved.
3*fd1c67efSJilles Tjoelker#
4*fd1c67efSJilles Tjoelker# Redistribution and use in source and binary forms, with or without
5*fd1c67efSJilles Tjoelker# modification, are permitted provided that the following conditions
6*fd1c67efSJilles Tjoelker# are met:
7*fd1c67efSJilles Tjoelker# 1. Redistributions of source code must retain the above copyright
8*fd1c67efSJilles Tjoelker#    notice, this list of conditions and the following disclaimer.
9*fd1c67efSJilles Tjoelker# 2. Redistributions in binary form must reproduce the above copyright
10*fd1c67efSJilles Tjoelker#    notice, this list of conditions and the following disclaimer in the
11*fd1c67efSJilles Tjoelker#    documentation and/or other materials provided with the distribution.
12*fd1c67efSJilles Tjoelker#
13*fd1c67efSJilles Tjoelker# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14*fd1c67efSJilles Tjoelker# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15*fd1c67efSJilles Tjoelker# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16*fd1c67efSJilles Tjoelker# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17*fd1c67efSJilles Tjoelker# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18*fd1c67efSJilles Tjoelker# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19*fd1c67efSJilles Tjoelker# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20*fd1c67efSJilles Tjoelker# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21*fd1c67efSJilles Tjoelker# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22*fd1c67efSJilles Tjoelker# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23*fd1c67efSJilles Tjoelker# SUCH DAMAGE.
24*fd1c67efSJilles Tjoelker#
25*fd1c67efSJilles Tjoelker# $FreeBSD$
26*fd1c67efSJilles Tjoelker
27*fd1c67efSJilles Tjoelkeratf_test_case uncompress_file_1
28*fd1c67efSJilles Tjoelkeruncompress_file_1_head()
29*fd1c67efSJilles Tjoelker{
30*fd1c67efSJilles Tjoelker	atf_set "descr" \
31*fd1c67efSJilles Tjoelker	    "Test uncompress without options, filename with .Z"
32*fd1c67efSJilles Tjoelker}
33*fd1c67efSJilles Tjoelkeruncompress_file_1_body()
34*fd1c67efSJilles Tjoelker{
35*fd1c67efSJilles Tjoelker	printf '%01000d\n' 7 >expectfile1
36*fd1c67efSJilles Tjoelker	printf "\
37*fd1c67efSJilles Tjoelker\037\235\220\060\002\012\034\110\260\240\301\203\010\023\052\134\
38*fd1c67efSJilles Tjoelker\310\260\241\303\207\020\043\112\234\110\261\242\305\213\030\063\
39*fd1c67efSJilles Tjoelker\152\334\310\261\243\307\217\040\103\212\034\111\262\244\311\223\
40*fd1c67efSJilles Tjoelker\050\123\252\134\211\360\206\002" >file1.Z
41*fd1c67efSJilles Tjoelker	atf_check uncompress file1.Z
42*fd1c67efSJilles Tjoelker	atf_check cmp file1 expectfile1
43*fd1c67efSJilles Tjoelker	atf_check test ! -e file1.Z
44*fd1c67efSJilles Tjoelker}
45*fd1c67efSJilles Tjoelker
46*fd1c67efSJilles Tjoelkeratf_test_case uncompress_file_2
47*fd1c67efSJilles Tjoelkeruncompress_file_2_head()
48*fd1c67efSJilles Tjoelker{
49*fd1c67efSJilles Tjoelker	atf_set "descr" \
50*fd1c67efSJilles Tjoelker	    "Test uncompress without options, filename without .Z"
51*fd1c67efSJilles Tjoelker}
52*fd1c67efSJilles Tjoelkeruncompress_file_2_body()
53*fd1c67efSJilles Tjoelker{
54*fd1c67efSJilles Tjoelker	printf '%01000d\n' 7 >expectfile1
55*fd1c67efSJilles Tjoelker	printf "\
56*fd1c67efSJilles Tjoelker\037\235\220\060\002\012\034\110\260\240\301\203\010\023\052\134\
57*fd1c67efSJilles Tjoelker\310\260\241\303\207\020\043\112\234\110\261\242\305\213\030\063\
58*fd1c67efSJilles Tjoelker\152\334\310\261\243\307\217\040\103\212\034\111\262\244\311\223\
59*fd1c67efSJilles Tjoelker\050\123\252\134\211\360\206\002" >file1.Z
60*fd1c67efSJilles Tjoelker	atf_check uncompress file1
61*fd1c67efSJilles Tjoelker	atf_check cmp file1 expectfile1
62*fd1c67efSJilles Tjoelker	atf_check test ! -e file1.Z
63*fd1c67efSJilles Tjoelker}
64*fd1c67efSJilles Tjoelker
65*fd1c67efSJilles Tjoelkeratf_test_case uncompress_stdio_1
66*fd1c67efSJilles Tjoelkeruncompress_stdio_1_head()
67*fd1c67efSJilles Tjoelker{
68*fd1c67efSJilles Tjoelker	atf_set "descr" \
69*fd1c67efSJilles Tjoelker	    "Test uncompress without parameters"
70*fd1c67efSJilles Tjoelker}
71*fd1c67efSJilles Tjoelkeruncompress_stdio_1_body()
72*fd1c67efSJilles Tjoelker{
73*fd1c67efSJilles Tjoelker	printf '%01000d\n' 7 >expectfile1
74*fd1c67efSJilles Tjoelker	printf "\
75*fd1c67efSJilles Tjoelker\037\235\220\060\002\012\034\110\260\240\301\203\010\023\052\134\
76*fd1c67efSJilles Tjoelker\310\260\241\303\207\020\043\112\234\110\261\242\305\213\030\063\
77*fd1c67efSJilles Tjoelker\152\334\310\261\243\307\217\040\103\212\034\111\262\244\311\223\
78*fd1c67efSJilles Tjoelker\050\123\252\134\211\360\206\002" >file1.Z
79*fd1c67efSJilles Tjoelker	atf_check -o file:expectfile1 -x 'uncompress <file1.Z'
80*fd1c67efSJilles Tjoelker}
81*fd1c67efSJilles Tjoelker
82*fd1c67efSJilles Tjoelkeratf_test_case uncompress_minusc_1
83*fd1c67efSJilles Tjoelkeruncompress_minusc_1_head()
84*fd1c67efSJilles Tjoelker{
85*fd1c67efSJilles Tjoelker	atf_set "descr" \
86*fd1c67efSJilles Tjoelker	    "Test uncompress with -c"
87*fd1c67efSJilles Tjoelker}
88*fd1c67efSJilles Tjoelkeruncompress_minusc_1_body()
89*fd1c67efSJilles Tjoelker{
90*fd1c67efSJilles Tjoelker	printf '%01000d\n' 7 >expectfile1
91*fd1c67efSJilles Tjoelker	printf "\
92*fd1c67efSJilles Tjoelker\037\235\220\060\002\012\034\110\260\240\301\203\010\023\052\134\
93*fd1c67efSJilles Tjoelker\310\260\241\303\207\020\043\112\234\110\261\242\305\213\030\063\
94*fd1c67efSJilles Tjoelker\152\334\310\261\243\307\217\040\103\212\034\111\262\244\311\223\
95*fd1c67efSJilles Tjoelker\050\123\252\134\211\360\206\002" >file1.Z
96*fd1c67efSJilles Tjoelker	atf_check -o file:expectfile1 uncompress -c file1.Z
97*fd1c67efSJilles Tjoelker	atf_check test -e file1.Z
98*fd1c67efSJilles Tjoelker	atf_check test ! -e file1
99*fd1c67efSJilles Tjoelker}
100*fd1c67efSJilles Tjoelker
101*fd1c67efSJilles Tjoelkeratf_test_case compress_uncompress_stdio_1
102*fd1c67efSJilles Tjoelkercompress_uncompress_stdio_1_head()
103*fd1c67efSJilles Tjoelker{
104*fd1c67efSJilles Tjoelker	atf_set "descr" \
105*fd1c67efSJilles Tjoelker	    "Test compressing and uncompressing some data, using stdio"
106*fd1c67efSJilles Tjoelker}
107*fd1c67efSJilles Tjoelkercompress_uncompress_stdio_1_body()
108*fd1c67efSJilles Tjoelker{
109*fd1c67efSJilles Tjoelker	printf '%01000d\n' 7 8 >expectfile1
110*fd1c67efSJilles Tjoelker	atf_check -x 'compress <expectfile1 >file1.Z'
111*fd1c67efSJilles Tjoelker	atf_check -o file:expectfile1 uncompress -c file1.Z
112*fd1c67efSJilles Tjoelker}
113*fd1c67efSJilles Tjoelker
114*fd1c67efSJilles Tjoelkeratf_test_case compress_uncompress_minusc_1
115*fd1c67efSJilles Tjoelkercompress_uncompress_minusc_1_head()
116*fd1c67efSJilles Tjoelker{
117*fd1c67efSJilles Tjoelker	atf_set "descr" \
118*fd1c67efSJilles Tjoelker	    "Test compressing and uncompressing some data, using -c"
119*fd1c67efSJilles Tjoelker}
120*fd1c67efSJilles Tjoelkercompress_uncompress_minusc_1_body()
121*fd1c67efSJilles Tjoelker{
122*fd1c67efSJilles Tjoelker	printf '%01000d\n' 7 8 >expectfile1
123*fd1c67efSJilles Tjoelker	atf_check -x 'compress -c expectfile1 >file1.Z'
124*fd1c67efSJilles Tjoelker	atf_check -o file:expectfile1 uncompress -c file1.Z
125*fd1c67efSJilles Tjoelker}
126*fd1c67efSJilles Tjoelker
127*fd1c67efSJilles Tjoelkeratf_test_case compress_uncompress_file_1
128*fd1c67efSJilles Tjoelkercompress_uncompress_file_1_head()
129*fd1c67efSJilles Tjoelker{
130*fd1c67efSJilles Tjoelker	atf_set "descr" \
131*fd1c67efSJilles Tjoelker	    "Test compressing and uncompressing some data, passing one filename"
132*fd1c67efSJilles Tjoelker}
133*fd1c67efSJilles Tjoelkercompress_uncompress_file_1_body()
134*fd1c67efSJilles Tjoelker{
135*fd1c67efSJilles Tjoelker	printf '%01000d\n' 7 8 >expectfile1
136*fd1c67efSJilles Tjoelker	cp expectfile1 file1
137*fd1c67efSJilles Tjoelker	atf_check compress file1
138*fd1c67efSJilles Tjoelker	atf_check -s exit:1 cmp -s file1.Z expectfile1
139*fd1c67efSJilles Tjoelker	atf_check uncompress file1.Z
140*fd1c67efSJilles Tjoelker	atf_check cmp file1 expectfile1
141*fd1c67efSJilles Tjoelker}
142*fd1c67efSJilles Tjoelker
143*fd1c67efSJilles Tjoelkeratf_test_case compress_uncompress_file_2
144*fd1c67efSJilles Tjoelkercompress_uncompress_file_2_head()
145*fd1c67efSJilles Tjoelker{
146*fd1c67efSJilles Tjoelker	atf_set "descr" \
147*fd1c67efSJilles Tjoelker	    "Test compressing and uncompressing some data, passing two filenames"
148*fd1c67efSJilles Tjoelker}
149*fd1c67efSJilles Tjoelkercompress_uncompress_file_2_body()
150*fd1c67efSJilles Tjoelker{
151*fd1c67efSJilles Tjoelker	printf '%01000d\n' 7 8 >expectfile1
152*fd1c67efSJilles Tjoelker	printf '%01000d\n' 8 7 >expectfile2
153*fd1c67efSJilles Tjoelker	cp expectfile1 file1
154*fd1c67efSJilles Tjoelker	cp expectfile2 file2
155*fd1c67efSJilles Tjoelker	atf_check compress file1 file2
156*fd1c67efSJilles Tjoelker	atf_check -s exit:1 cmp -s file1.Z expectfile1
157*fd1c67efSJilles Tjoelker	atf_check -s exit:1 cmp -s file2.Z expectfile2
158*fd1c67efSJilles Tjoelker	atf_check -s exit:1 cmp -s file1.Z file2.Z
159*fd1c67efSJilles Tjoelker	atf_check uncompress file1.Z file2.Z
160*fd1c67efSJilles Tjoelker	atf_check cmp file1 expectfile1
161*fd1c67efSJilles Tjoelker	atf_check cmp file2 expectfile2
162*fd1c67efSJilles Tjoelker}
163*fd1c67efSJilles Tjoelker
164*fd1c67efSJilles Tjoelkeratf_init_test_cases()
165*fd1c67efSJilles Tjoelker{
166*fd1c67efSJilles Tjoelker	atf_add_test_case uncompress_file_1
167*fd1c67efSJilles Tjoelker	atf_add_test_case uncompress_file_2
168*fd1c67efSJilles Tjoelker	atf_add_test_case uncompress_stdio_1
169*fd1c67efSJilles Tjoelker	atf_add_test_case uncompress_minusc_1
170*fd1c67efSJilles Tjoelker	atf_add_test_case compress_uncompress_stdio_1
171*fd1c67efSJilles Tjoelker	atf_add_test_case compress_uncompress_minusc_1
172*fd1c67efSJilles Tjoelker	atf_add_test_case compress_uncompress_file_1
173*fd1c67efSJilles Tjoelker	atf_add_test_case compress_uncompress_file_2
174*fd1c67efSJilles Tjoelker}
175