You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
3.3 KiB
153 lines
3.3 KiB
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
# Copyright (c) International Business Machines Corp., 2001
|
|
# Author: Manoj Iyer <manjo@mail.utexas.edu>
|
|
#
|
|
# Test basic functionality of gzip and gunzip command
|
|
# Test #1: Test that gzip -r will travel directories and
|
|
# compress all the files available.
|
|
#
|
|
# Test #2: Test that gunzip -r will travel directories and
|
|
# uncompress all the files available.
|
|
|
|
TST_CNT=2
|
|
TST_TESTFUNC=test
|
|
TST_NEEDS_TMPDIR=1
|
|
TST_NEEDS_CMDS="gzip gunzip"
|
|
. tst_test.sh
|
|
|
|
creat_dirnfiles()
|
|
{
|
|
local numdirs=$2
|
|
local numfiles=$3
|
|
local dirname=$4
|
|
local dircnt=0
|
|
local fcnt=0
|
|
|
|
tst_res TINFO "Test #$1: Creating $numdirs directories"
|
|
tst_res TINFO "Test #$1: filling each dir with $numfiles files"
|
|
while [ $dircnt -lt $numdirs ]; do
|
|
dirname=$dirname/d.$dircnt
|
|
ROD_SILENT mkdir -p $dirname
|
|
|
|
fcnt=0
|
|
while [ $fcnt -lt $numfiles ]; do
|
|
ROD_SILENT touch $dirname/f.$fcnt
|
|
fcnt=$(($fcnt+1))
|
|
done
|
|
dircnt=$(($dircnt+1))
|
|
done
|
|
}
|
|
|
|
creat_expout()
|
|
{
|
|
local numdir=$1
|
|
local numfile=$2
|
|
local dirname=$3
|
|
local ext=$4
|
|
local dircnt=0
|
|
local fcnt=0
|
|
|
|
echo "$dirname:" 1> tst_gzip.exp
|
|
echo "d.$dircnt" 1>> tst_gzip.exp
|
|
while [ $dircnt -lt $numdirs ]; do
|
|
dirname=$dirname/d.$dircnt
|
|
dircnt=$(($dircnt+1))
|
|
echo "$dirname:" 1>> tst_gzip.exp
|
|
if [ $dircnt -lt $numdirs ]; then
|
|
echo "d.$dircnt" 1>> tst_gzip.exp
|
|
fi
|
|
fcnt=0
|
|
while [ $fcnt -lt $numfiles ]; do
|
|
echo "f.$fcnt$ext " 1>> tst_gzip.exp
|
|
fcnt=$(($fcnt+1))
|
|
done
|
|
printf "\n\n" 1>> tst_gzip.exp
|
|
done
|
|
}
|
|
|
|
test1()
|
|
{
|
|
numdirs=10
|
|
numfiles=10
|
|
dircnt=0
|
|
fcnt=0
|
|
|
|
ROD_SILENT mkdir tst_gzip.tmp
|
|
|
|
tst_res TINFO "Test #1: gzip -r will recursively compress contents" \
|
|
"of directory"
|
|
|
|
creat_dirnfiles 1 $numdirs $numfiles tst_gzip.tmp
|
|
|
|
gzip -r tst_gzip.tmp > tst_gzip.err 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
cat tst_gzip.err
|
|
tst_brk TFAIL "Test #1: gzip -r failed"
|
|
fi
|
|
|
|
tst_res TINFO "Test #1: creating output file"
|
|
ls -R tst_gzip.tmp > tst_gzip.out 2>&1
|
|
|
|
tst_res TINFO "Test #1: creating expected output file"
|
|
creat_expout $numdirs $numfiles tst_gzip.tmp .gz
|
|
|
|
diff -w -B tst_gzip.out tst_gzip.exp > tst_gzip.err 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
cat tst_gzip.err
|
|
tst_res TFAIL "Test #1: gzip failed"
|
|
else
|
|
tst_res TPASS "Test #1: gzip -r success"
|
|
fi
|
|
|
|
ROD_SILENT rm -rf tst_gzip.tmp/
|
|
}
|
|
|
|
test2()
|
|
{
|
|
numdirs=10
|
|
numfiles=10
|
|
dircnt=0
|
|
fcnt=0
|
|
|
|
ROD_SILENT mkdir tst_gzip.tmp
|
|
|
|
tst_res TINFO "Test #2: gunzip -r will recursively uncompress" \
|
|
"contents of directory"
|
|
|
|
creat_dirnfiles 2 $numdirs $numfiles tst_gzip.tmp
|
|
|
|
gzip -r tst_gzip.tmp > tst_gzip.err 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
cat tst_gzip.err
|
|
tst_brk TBROK "Test #2: compressing directory tst_gzip.tmp" \
|
|
"failed"
|
|
fi
|
|
|
|
gunzip -r tst_gzip.tmp > tst_gzip.err 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
cat tst_gzip.err
|
|
tst_brk TBROK "Test #2: uncompressing directory" \
|
|
" tst_gzip.tmp failed"
|
|
fi
|
|
|
|
tst_res TINFO "Test #2: creating output file"
|
|
ls -R tst_gzip.tmp > tst_gzip.out 2>&1
|
|
|
|
tst_res TINFO "Test #2: creating expected output file"
|
|
creat_expout $numdirs $numfiles tst_gzip.tmp
|
|
|
|
tst_res TINFO "Test #2: comparing expected out and actual output file"
|
|
diff -w -B tst_gzip.out tst_gzip.exp > tst_gzip.err 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
cat tst_gzip.err
|
|
tst_res TFAIL "Test #2: gunzip failed"
|
|
else
|
|
tst_res TPASS "Test #2: gunzip -r success"
|
|
fi
|
|
|
|
ROD_SILENT rm -rf tst_gzip.tmp/
|
|
}
|
|
|
|
tst_run
|