Home | History | Annotate | Download | only in linktest
      1 #!/bin/sh
      2 
      3 #   Copyright (c) International Business Machines  Corp., 2000
      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 of the License, or
      8 #   (at your option) 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
     13 #   the 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 02110-1301 USA
     18 
     19 
     20 #
     21 #  FILE(s)     : linktest.sh README
     22 #  DESCRIPTION : Regression test for max links per file
     23 #  USE         : linktest.sh <number of symlinks> <number of hardlinks>
     24 #  AUTHOR      : Ngie Cooper (yaneurabeya (at] gmail.com)
     25 #  HISTORY     :
     26 #	A rewrite of testcases/kernel/fs/linktest.pl
     27 
     28 export TCID=linker01
     29 export TST_TOTAL=2
     30 export TST_COUNT=1
     31 . test.sh
     32 
     33 if [ $# -ne 2 ]; then
     34 	tst_resm TBROK "usage: $0 {softlink count} {hardlink count}"
     35 	exit 1
     36 fi
     37 
     38 tst_tmpdir
     39 
     40 mkdir hlink.$$ slink.$$ && touch hlink.$$/hfile slink.$$/sfile
     41 
     42 do_link() {
     43 	pfix=$1
     44 	ln_opts=$2
     45 	limit=$3
     46 	prefix_msg=$4
     47 
     48 	lerrors=0
     49 
     50 	i=0
     51 
     52 	cd "${pfix}link.$$"
     53 	while [ $i -lt $limit ]; do
     54 		if ! ln ${ln_opts} "$PWD/${pfix}file" ${pfix}file${i}; then
     55 			: $(( lerrors += 1 ))
     56 		fi
     57 		: $(( i+= 1 ))
     58 	done
     59 	cd ..
     60 
     61 	if [ $lerrors -eq 0 ]; then
     62 		RTYPE=TPASS
     63 	else
     64 		RTYPE=TFAIL
     65 	fi
     66 
     67 	tst_resm $RTYPE "$prefix_msg Link Errors: $lerrors"
     68 
     69 	: $(( TST_COUNT += 1 ))
     70 
     71 }
     72 
     73 do_link s "-s" ${1} "Symbolic"
     74 do_link h   "" ${2} "Hard"
     75 
     76 rm -Rf hlink.$$ slink.$$
     77 
     78 tst_rmdir
     79 tst_exit
     80