1#!/bin/sh 2################################################################################ 3## ## 4## Copyright (c) International Business Machines Corp., 2001 ## 5## ## 6## This program is free software; you can redistribute it and#or modify ## 7## it under the terms of the GNU General Public License as published by ## 8## the Free Software Foundation; either version 2 of the License, or ## 9## (at your option) any later version. ## 10## ## 11## This program is distributed in the hope that it will be useful, but ## 12## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## 13## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## 14## for more details. ## 15## ## 16## You should have received a copy of the GNU General Public License ## 17## along with this program; if not, write to the Free Software ## 18## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ## 19## ## 20################################################################################ 21# 22# 23# File : cpio_test.sh 24# 25# Description: Test basic functionality of cpio command 26# - Test #1: cpio -o can create an archive. 27# 28# Author: Manoj Iyer, manjo@mail.utexas.edu 29# 30# History: Jan 30 2003 - Created - Manoj Iyer. 31# 32# Function: init 33# 34# Description: - Check if command cpio is available. 35# - Create temprary directory, and temporary files. 36# - Initialize environment variables. 37# 38# Return - zero on success 39# - non zero on failure. return value from commands ($RC) 40init() 41{ 42 43 RC=0 # Return code from commands. 44 export TST_TOTAL=1 # total numner of tests in this file. 45 export TCID=cpio # this is the init function. 46 export TST_COUNT=0 # init identifier, 47 48 if [ -z "$LTPTMP" -a -z "$TMPBASE" ] 49 then 50 LTPTMP=/tmp 51 else 52 LTPTMP=$TMPBASE 53 fi 54 if [ -z "$LTPBIN" -a -z "$LTPROOT" ] 55 then 56 LTPBIN=./ 57 else 58 LTPBIN=$LTPROOT/testcases/bin 59 fi 60 61 62 $LTPBIN/tst_resm TINFO "INIT: Inititalizing tests." 63 64 which cpio > $LTPTMP/tst_cpio.err 2>&1 || RC=$? 65 if [ $RC -ne 0 ] 66 then 67 $LTPBIN/tst_brk TBROK $LTPTMP/tst_cpio.err NULL \ 68 "Test #1: cpio command does not exist. Reason:" 69 return $RC 70 fi 71 72 mkdir -p $LTPTMP/tst_cpio.tmp > $LTPTMP/tst_cpio.err 2>&1 || RC=$? 73 if [ $RC -ne 0 ] 74 then 75 $LTPBIN/tst_brk TBROK $LTPTMP/tst_cpio.err NULL \ 76 "Test #1: failed creating temp directory. Reason:" 77 return $RC 78 fi 79 80 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 81 do 82 touch $LTPTMP/tst_cpio.tmp/$i > $LTPTMP/tst_cpio.err 2>&1 || RC=$? 83 if [ $RC -ne 0 ] 84 then 85 $LTPBIN/tst_brk TBROK $LTPTMP/tst_cpio.err NULL \ 86 "Test #1: failed creating temp directory. Reason:" 87 return $RC 88 fi 89 done 90 return $RC 91} 92 93# Function: clean 94# 95# Description - Remove all temorary directories and file.s 96# 97# Return - NONE 98clean() 99{ 100 export TCID=cpio # this is the init function. 101 export TST_COUNT=0 # init identifier, 102 103 $LTPBIN/tst_resm TINFO "CLEAN cleaning up before return" 104 rm -fr $LTPTMP/tst_cpio* > /dev/null 2>&1 105 return 106} 107 108 109# Function: test01 110# 111# Description - Test #1: Test that cpio -o will create a cpio archive. 112# 113# Return - zero on success 114# - non zero on failure. return value from commands ($RC) 115 116test01() 117{ 118 RC=0 # Return value from commands. 119 export TCID=cpio01 # Name of the test case. 120 export TST_COUNT=1 # Test number. 121 122 $LTPBIN/tst_resm TINFO "Test #1: cpio -o will create an archive." 123 124 find $LTPTMP/tst_cpio.tmp/ -type f | cpio -o > $LTPTMP/tst_cpio.out \ 125 2>$LTPTMP/tst_cpio.err || RC=$? 126 if [ $RC -ne 0 ] 127 then 128 $LTPBIN/tst_res TFAIL $LTPTMP/tst_cpio.err \ 129 "Test #1: creating cpio archive failed. Reason:" 130 return $RC 131 else 132 if [ -f $LTPTMP/tst_cpio.out ] 133 then 134 file $LTPTMP/tst_cpio.out > $LTPTMP/tst_cpio.err 2>&1 || RC=$? 135 if [ $? -ne 0 ] 136 then 137 $LTPBIN/tst_res TFAIL $LTPTMP/tst_cpio.err \ 138 "Test #1: bad output, not cpio format. Reason:" 139 return $RC 140 fi 141 else 142 $LTPBIN/tst_resm TFAIL "Test #1: did not create cpio file." 143 return $RC 144 fi 145 fi 146 return $RC 147} 148 149 150# Function: main 151# 152# Description: - Execute all tests, report results. 153# 154# Exit: - zero on success 155# - non-zero on failure. 156 157 158TFAILCNT=0 # Set TFAILCNT to 0, increment on failure. 159RC=0 # Return code from tests. 160 161init || exit $RC # Exit if initializing testcases fails. 162 163test01 || RC=$? # Test #1 164if [ $RC -eq 0 ] 165then 166 $LTPBIN/tst_resm TPASS "Test #1: cpio created an archive" 167else 168 TFAILCNT=$(( $TFAILCNT+1 )) 169fi 170 171clean # clean up before returning 172 173exit $TFAILCNT 174