1#! /bin/sh 2# This file is part of GNU tar testsuite. 3# Copyright (C) 2004, 2005 Free Software Foundation, Inc. 4# 5# This program is free software; you can redistribute it and/or modify 6# it under the terms of the GNU General Public License as published by 7# the Free Software Foundation; either version 2, or (at your option) 8# any later version. 9# 10# This program is distributed in the hope that it will be useful, 11# but WITHOUT ANY WARRANTY; without even the implied warranty of 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13# GNU General Public License for more details. 14# 15# You should have received a copy of the GNU General Public License 16# along with this program; if not, write to the Free Software 17# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 18# 02110-1301, USA. 19 20PWD=`pwd` 21P=`expr $0 : '\(.*\)/.*'` 22DIR=`cd $P; pwd`/../../src 23if [ -d $DIR ]; then 24 PATH=`cd $DIR;pwd`:$PATH 25fi 26 27# Usage: quicktest FILELIST ARCHIVE-NAME 28quicktest() { 29 DIR=quicktest.$$ 30 mkdir $DIR 31 cd $DIR 32 33 TAR_OPTIONS="" 34 export TAR_OPTIONS 35 36 tar xf $2 37 tar -cf ../archive -H ustar -T $1 38 cd .. 39 40 ${TARTEST:-tartest} -v < $2 > $DIR/old.out 41 ${TARTEST:-tartest} -v < archive > $DIR/new.out 42 43 if cmp $DIR/old.out $DIR/new.out; then 44 echo "PASS" 45 rm -r $DIR 46 exit 0 47 else 48 echo "FAIL. Examine $DIR for details" 49 exit 1 50 fi 51} 52 53test_access() { 54 if [ -r $1 ]; then 55 : 56 else 57 echo "$1 does not exist or is unreadable" 58 echo 77 59 fi 60} 61 62check_environ() { 63 if [ "$STAR_TESTSCRIPTS" = "" ]; then 64 echo "STAR_TESTSCRIPTS not set" 65 exit 77 66 fi 67 68 if [ -d $STAR_TESTSCRIPTS ]; then 69 : 70 else 71 echo "STAR_TESTSCRIPTS is not a directory" 72 exit 77 73 fi 74 75 ARCHIVE=$STAR_TESTSCRIPTS/ustar-all-quicktest.tar 76 test_access $ARCHIVE 77 FILELIST=$STAR_TESTSCRIPTS/quicktest.filelist 78 test_access $FILELIST 79 80 ${TARTEST:-tartest} < /dev/null > /dev/null 2>&1 81 if [ $? -eq 127 ]; then 82 echo "tartest not in your path" 83 exit 77 84 fi 85 tar --version 86} 87 88getargs() { 89 for option 90 do 91 case $option in 92 *=*) eval $option;; 93 *) echo "Unknown option: $option" >&2 94 exit 77;; 95 esac 96 done 97} 98 99if [ -w / ]; then 100 getargs $* 101 check_environ 102 quicktest $FILELIST $ARCHIVE 103else 104 echo "You need to be root to run this test" 105 exit 77 106fi 107 108# End of quicktest.sh 109