blob: 90883c117b918fa78be971263a101c9838a8ed27 [file] [log] [blame]
#!/bin/sh
################################################################################
## ##
## Copyright (c) International Business Machines Corp., 2001 ##
## ##
## This program is free software; you can redistribute it and#or modify ##
## it under the terms of the GNU General Public License as published by ##
## the Free Software Foundation; either version 2 of the License, or ##
## (at your option) any later version. ##
## ##
## This program is distributed in the hope that it will be useful, but ##
## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ##
## for more details. ##
## ##
## You should have received a copy of the GNU General Public License ##
## along with this program; if not, write to the Free Software ##
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ##
## ##
################################################################################
#
#
# File : cpio_test.sh
#
# Description: Test basic functionality of cpio command
# - Test #1: cpio -o can create an archive.
#
# Author: Manoj Iyer, manjo@mail.utexas.edu
#
# History: Jan 30 2003 - Created - Manoj Iyer.
#
# Function: init
#
# Description: - Check if command cpio is available.
# - Create temprary directory, and temporary files.
# - Initialize environment variables.
#
# Return - zero on success
# - non zero on failure. return value from commands ($RC)
init()
{
RC=0 # Return code from commands.
export TST_TOTAL=1 # total numner of tests in this file.
export TCID=cpio # this is the init function.
export TST_COUNT=0 # init identifier,
if [ -z "$LTPTMP" -a -z "$TMPBASE" ]
then
LTPTMP=/tmp
else
LTPTMP=$TMPBASE
fi
if [ -z "$LTPBIN" -a -z "$LTPROOT" ]
then
LTPBIN=./
else
LTPBIN=$LTPROOT/testcases/bin
fi
$LTPBIN/tst_resm TINFO "INIT: Inititalizing tests."
which cpio > $LTPTMP/tst_cpio.err 2>&1 || RC=$?
if [ $RC -ne 0 ]
then
$LTPBIN/tst_brk TBROK $LTPTMP/tst_cpio.err NULL \
"Test #1: cpio command does not exist. Reason:"
return $RC
fi
mkdir -p $LTPTMP/tst_cpio.tmp > $LTPTMP/tst_cpio.err 2>&1 || RC=$?
if [ $RC -ne 0 ]
then
$LTPBIN/tst_brk TBROK $LTPTMP/tst_cpio.err NULL \
"Test #1: failed creating temp directory. Reason:"
return $RC
fi
for i in a b c d e f g h i j k l m n o p q r s t u v w x y z
do
touch $LTPTMP/tst_cpio.tmp/$i > $LTPTMP/tst_cpio.err 2>&1 || RC=$?
if [ $RC -ne 0 ]
then
$LTPBIN/tst_brk TBROK $LTPTMP/tst_cpio.err NULL \
"Test #1: failed creating temp directory. Reason:"
return $RC
fi
done
return $RC
}
# Function: clean
#
# Description - Remove all temorary directories and file.s
#
# Return - NONE
clean()
{
export TCID=cpio # this is the init function.
export TST_COUNT=0 # init identifier,
$LTPBIN/tst_resm TINFO "CLEAN cleaning up before return"
rm -fr $LTPTMP/tst_cpio* > /dev/null 2>&1
return
}
# Function: test01
#
# Description - Test #1: Test that cpio -o will create a cpio archive.
#
# Return - zero on success
# - non zero on failure. return value from commands ($RC)
test01()
{
RC=0 # Return value from commands.
export TCID=cpio01 # Name of the test case.
export TST_COUNT=1 # Test number.
$LTPBIN/tst_resm TINFO "Test #1: cpio -o will create an archive."
find $LTPTMP/tst_cpio.tmp/ -type f | cpio -o > $LTPTMP/tst_cpio.out \
2>$LTPTMP/tst_cpio.err || RC=$?
if [ $RC -ne 0 ]
then
$LTPBIN/tst_res TFAIL $LTPTMP/tst_cpio.err \
"Test #1: creating cpio archive failed. Reason:"
return $RC
else
if [ -f $LTPTMP/tst_cpio.out ]
then
file $LTPTMP/tst_cpio.out > $LTPTMP/tst_cpio.err 2>&1 || RC=$?
if [ $? -ne 0 ]
then
$LTPBIN/tst_res TFAIL $LTPTMP/tst_cpio.err \
"Test #1: bad output, not cpio format. Reason:"
return $RC
fi
else
$LTPBIN/tst_resm TFAIL "Test #1: did not create cpio file."
return $RC
fi
fi
return $RC
}
# Function: main
#
# Description: - Execute all tests, report results.
#
# Exit: - zero on success
# - non-zero on failure.
TFAILCNT=0 # Set TFAILCNT to 0, increment on failure.
RC=0 # Return code from tests.
init || exit $RC # Exit if initializing testcases fails.
test01 || RC=$? # Test #1
if [ $RC -eq 0 ]
then
$LTPBIN/tst_resm TPASS "Test #1: cpio created an archive"
else
TFAILCNT=$(( $TFAILCNT+1 ))
fi
clean # clean up before returning
exit $TFAILCNT