On Wed, 2009-02-25 at 21:16 -0800, Matt Helsley wrote: > Suprisingly, not every Linux distribution comes with unzip installed. > Thankfully unzip does not appear to be needed for any other tests. > This patch cleans up the unzip test so that if zip or unzip does not > exist the test will not be built or run. > > This patch changes the way the build and run portions of the script are spread > across the Makefile and unzip_tests.sh script. Previously part of the build > was > performed during the test -- building the sample zip archive. Now that sample > archive is conditionally built using Make instead of shell script. > > Also, as near as I can tell, the comments "describing" the test are > totally incorrect -- they appear to be a copy-paste artifact. So I > updated them. > > Signed-off-by: Matt Helsley <[email protected]>
Thanks for this as well. I heard lots of complaint after i made them to run as default. Hope this fix along with the fix for /tmp/ being in separate FS (fixed earlier), finally fixes all the issue(s). Regards-- Subrata > --- > > runtest/commands | 2 > testcases/commands/unzip/Makefile | 33 ++++++++--- > testcases/commands/unzip/unzip_genfile.sh | 24 +------- > testcases/commands/unzip/unzip_tests.sh | 85 > +++++++++++------------------- > 4 files changed, 60 insertions(+), 84 deletions(-) > > Index: ltp-full-20090131/testcases/commands/unzip/Makefile > =================================================================== > --- ltp-full-20090131.orig/testcases/commands/unzip/Makefile > +++ ltp-full-20090131/testcases/commands/unzip/Makefile > @@ -1,12 +1,27 @@ > -all: > - ./unzip_genfile.sh > +# Only build and install if we have the zip and unzip commands > +HAVE_ZIPTOOLS=$(shell which zip && which unzip && echo t) > +ifeq ($(HAVE_ZIPTOOLS),t) > +BINS := unzip_tests.sh > +DEPS := tst_unzip_file.zip $(BINS) > +else > +BINS := > +DEPS := > +endif > > -install: > - ln -f unzip_tests.sh ../../bin/unzip_tests.sh > - ln -f tst_unzip_file.zip ../../bin/tst_unzip_file.zip > - ln -fs $(PWD)/unzip/tst_unzip_file.zip /tmp/tst_unzip_file.zip > - chmod 777 tst_unzip_file.zip > +all: $(DEPS) > + > +tst_unzip_file.zip: tst_unzip.dir > + zip -r tst_unzip_file.zip tst_unzip.dir && chmod 777 tst_unzip_file.zip > + > +# This target should be auto-removed by Make > +.INTERMEDIATE: tst_unzip.dir > +tst_unzip.dir: unzip_genfile.sh > + ./unzip_genfile.sh tst_unzip.dir > + > +install: all > + for i in $(BINS) ; do \ > + ln -f $$i ../../bin/$$i ; \ > + done > > clean: > - rm -f tst_unzip_file.zip > - rm -f /tmp/tst_unzip_file.zip > + rm -rf tst_unzip.dir tst_unzip_file.zip > Index: ltp-full-20090131/testcases/commands/unzip/unzip_genfile.sh > =================================================================== > --- ltp-full-20090131.orig/testcases/commands/unzip/unzip_genfile.sh > +++ ltp-full-20090131/testcases/commands/unzip/unzip_genfile.sh > @@ -33,7 +33,7 @@ > > numdirs=3 # number of directories to create > numfiles=3 # number of file to create in each directory > -dirname=/tmp/tst_unzip.dir # name of the base directory > +dirname=$1 # name of the base directory > dircnt=0 # index into number of dirs created in loop > fcnt=0 # index into number of files created in loop > RC=0 # return value from commands > @@ -44,7 +44,7 @@ do > mkdir -p $dirname || RC=$? > if [ $RC -ne 0 ] > then > - echo "unzip_genfile.sh: ERROR: while creating $numdirs dirs." > 1>&2 > + echo "$0: ERROR: while creating $numdirs dirs." 1>&2 > exit $RC > fi > fcnt=0 > @@ -53,28 +53,10 @@ do > touch $dirname/f.$fcnt > if [ $RC -ne 0 ] > then > - echo "unzip_genfile.sh: ERROR: creating $numdirs dirs." > 1>&2 > + echo "$0: ERROR: creating $numdirs dirs." 1>&2 > exit $RC > fi > fcnt=$(($fcnt+1)) > done > dircnt=$(($dircnt+1)) > done > - > -# Create ZIP file. > - > -zip -r tst_unzip_file.zip /tmp/tst_unzip.dir || RC=$? > -if [ $RC -ne 0 ] > -then > - echo "unzip_genfile.sh: ERROR: creating tst_unzip_file.zip archive." > 1>&2 > - exit $RC > -fi > - > -rm -fr /tmp/tst_unzip.* || RC=$? > -if [ $RC -ne 0 ] > -then > - echo "unzip_genfile.sh: ERROR: deleting tempory files." 1>&2 > - exit $RC > -fi > - > -exit $RC > Index: ltp-full-20090131/testcases/commands/unzip/unzip_tests.sh > =================================================================== > --- ltp-full-20090131.orig/testcases/commands/unzip/unzip_tests.sh > +++ ltp-full-20090131/testcases/commands/unzip/unzip_tests.sh > @@ -21,18 +21,8 @@ > # > # File : unzip_tests.sh > # > -# Description: Test Basic functionality of unzip command. > -# Test #1: Test that unzip -f <file.conf> rotates the logfile > -# as per the specifications in the conf file. Create a file > -# tst_logfile in /var/log/. Create a conf file such that this > -# logfile is set for rotation every week. Execute the command > -# unzip -f <file.conf>, check to see if it forced rotation. > -# Test #2: Check if unzip running as a cronjob will rotate a > -# logfile when it exceeds a specific size. Create two > cronjobs > -# 1. runs a command to log a string to a logfile. 2. runs > -# unzip <file.conf> every minute. The conf file specifies > -# that the rotation happen only if the log file exceeds 2k > file > -# size. > +# Description: Test Basic functionality of unzip command. Pass in the zip > +# file to test. > # > # Author: Manoj Iyer, [email protected] > # > @@ -54,7 +44,7 @@ > chk_ifexists() > { > RC=0 > - which $2 > $LTPTMP/tst_unzip.err || RC=$? > + which $2 > "$LTPTMP/tst_unzip.err" || RC=$? > if [ $? -ne 0 ] > then > tst_brkm TBROK NULL "$1: command $2 not found." > @@ -71,11 +61,10 @@ chk_ifexists() > # - non-zero on failure. > cleanup() > { > + popd > # remove all the temporary files created by this test. > - tst_resm TINFO "CLEAN: removing $LTPTMP" > - rm -fr $LTPTMP > - tst_resm TINFO "CLEAN: removing $PWD/tmp" > - rm -fr $PWD/tmp > + tst_resm TINFO "CLEAN: removing \"$LTPTMP\"" > + rm -fr "$LTPTMP" > } > > > @@ -96,16 +85,11 @@ init() > export TST_COUNT=0 > > # Inititalize cleanup function. > - trap "cleanup" 0 > > # create the temporary directory used by this testcase > - if [ -d $TMP ] > - then > - LTPTMP=/tmp/tst_unzip.$$ > - TMP=/tmp > - else > - LTPTMP=$TMP/tst_unzip.$$ > - fi > + LTPTMP=`mktemp -d $$.XXXXXX` || tst_resm TBROK "Unable to create > temporary directory with: mktemp -d $$.XXXXXX" > + trap "cleanup" 0 > + pushd "$LTPTMP" > > # check if commands tst_*, unzip, awk, etc exists. > chk_ifexists INIT tst_resm || return $RC > @@ -113,29 +97,22 @@ init() > chk_ifexists INIT mkdir || return $RC > chk_ifexists INIT awk || return $RC > > - mkdir -p $LTPTMP >/dev/null || RC=$? > - if [ $RC -ne 0 ] > - then > - tst_brkm TBROK "INIT: Unable to create temporary directory" > - return $RC > - fi > - > # create expected output files. tst_unzip.exp > cat > $LTPTMP/tst_unzip.out.exp <<-EOF > Archive: $TMP/tst_unzip_file.zip > - creating: tmp/tst_unzip.dir/ > - creating: tmp/tst_unzip.dir/d.0/ > - extracting: tmp/tst_unzip.dir/d.0/f.0 > - extracting: tmp/tst_unzip.dir/d.0/f.1 > - extracting: tmp/tst_unzip.dir/d.0/f.2 > - creating: tmp/tst_unzip.dir/d.0/d.1/ > - extracting: tmp/tst_unzip.dir/d.0/d.1/f.0 > - extracting: tmp/tst_unzip.dir/d.0/d.1/f.1 > - extracting: tmp/tst_unzip.dir/d.0/d.1/f.2 > - creating: tmp/tst_unzip.dir/d.0/d.1/d.2/ > - extracting: tmp/tst_unzip.dir/d.0/d.1/d.2/f.0 > - extracting: tmp/tst_unzip.dir/d.0/d.1/d.2/f.1 > - extracting: tmp/tst_unzip.dir/d.0/d.1/d.2/f.2 > + creating: tst_unzip.dir/ > + creating: tst_unzip.dir/d.0/ > + extracting: tst_unzip.dir/d.0/f.0 > + extracting: tst_unzip.dir/d.0/f.1 > + extracting: tst_unzip.dir/d.0/f.2 > + creating: tst_unzip.dir/d.0/d.1/ > + extracting: tst_unzip.dir/d.0/d.1/f.0 > + extracting: tst_unzip.dir/d.0/d.1/f.1 > + extracting: tst_unzip.dir/d.0/d.1/f.2 > + creating: tst_unzip.dir/d.0/d.1/d.2/ > + extracting: tst_unzip.dir/d.0/d.1/d.2/f.0 > + extracting: tst_unzip.dir/d.0/d.1/d.2/f.1 > + extracting: tst_unzip.dir/d.0/d.1/d.2/f.2 > EOF > > return $RC > @@ -156,34 +133,35 @@ test01() > count=0 > files=" " > filesize=0 > + zipfile="$1" > > TCID=unzip01 > TST_COUNT=1 > > tst_resm TINFO "Test #1: unzip command un-compresses a .zip file." > > - unzip $TMP/tst_unzip_file.zip >$LTPTMP/tst_unzip.out || RC=$? > + unzip "${zipfile}" > "$LTPTMP/tst_unzip.out" || RC=$? > if [ $RC -ne 0 ] > then > - tst_res TFAIL $LTPTMP/tst_unzip.out \ > + tst_res TFAIL "$LTPTMP/tst_unzip.out" \ > "Test #1: unzip command failed. Return value = $RC. > Details:" > return $RC > else > - diff -iwB $LTPTMP/tst_unzip.out $LTPTMP/tst_unzip.out.exp > > $LTPTMP/tst_unzip.out.err || RC=$? > + diff -iwB "$LTPTMP/tst_unzip.out" "$LTPTMP/tst_unzip.out.exp" > > "$LTPTMP/tst_unzip.out.err" || RC=$? > if [ $RC -ne 0 ] > then > - tst_res TFAIL $LTPTMP/tst_unzip.out.err \ > + tst_res TFAIL "$LTPTMP/tst_unzip.out.err" \ > "Test #1: unzip output differs from expected > output. Details" > else > - tst_resm TINFO "Test #1: check if > $PWD/tmp/tst_unzip.dir exits." > - if ! [ -d $PWD/tmp/tst_unzip.dir ] > + tst_resm TINFO "Test #1: check if > \"$PWD/tst_unzip.dir\" exits." > + if ! [ -d $PWD/tst_unzip.dir ] > then > tst_resm TFAIL \ > "Test #1: unzip did not uncompress the > .zip file" > $((RC+1)) > else > tst_resm TINFO \ > - "Test #1: $PWD/tmp/tst_unzip.dir was > created by unzip" > + "Test #1: \"$PWD/tst_unzip.dir\" was > created by unzip" > tst_resm TPASS \ > "Test #1: unzip can uncompress .zip file > correctly." > fi > @@ -201,8 +179,9 @@ test01() > # - non-zero on failure. > > RC=0 > +stat "$1" || exit $? > init || exit $? > > -test01 || RC=$? > +test01 "$1" || RC=$? > > exit $RC > Index: ltp-full-20090131/runtest/commands > =================================================================== > --- ltp-full-20090131.orig/runtest/commands > +++ ltp-full-20090131/runtest/commands > @@ -10,7 +10,7 @@ cron export TCdat=$LTPROOT/testcases/bin > logrotate export TCdat=$LTPROOT/testcases/bin; logrotate_tests.sh > mail export TCdat=$LTPROOT/testcases/bin; mail_tests.sh > cpio export TCdat=$LTPROOT/testcases/bin; cpio_tests.sh > -unzip01 unzip_tests.sh > +unzip01 unzip_tests.sh $LTPROOT/testcases/commands/unzip/tst_unzip_file.zip > gzip01 gzip_tests.sh > cp_tests01 cp_tests.sh > ln_tests01 ln_tests.sh ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
