Home | History | Annotate | Download | only in ln
      1 #!/bin/sh
      2 ################################################################################
      3 ##                                                                            ##
      4 ## Copyright (c) International Business Machines  Corp., 2001                 ##
      5 ##  Author:       Manoj Iyer, manjo (at] mail.utexas.edu                           ##
      6 ## Copyright (c) 2016 Cyril Hrubis <chrubis (at] suse.cz>                          ##
      7 ##                                                                            ##
      8 ## This program is free software;  you can redistribute it and#or modify      ##
      9 ## it under the terms of the GNU General Public License as published by       ##
     10 ## the Free Software Foundation; either version 2 of the License, or          ##
     11 ## (at your option) any later version.                                        ##
     12 ##                                                                            ##
     13 ## This program is distributed in the hope that it will be useful, but        ##
     14 ## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
     15 ## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
     16 ## for more details.                                                          ##
     17 ##                                                                            ##
     18 ## You should have received a copy of the GNU General Public License          ##
     19 ## along with this program;  if not, write to the Free Software Foundation,   ##
     20 ## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA           ##
     21 ##                                                                            ##
     22 ################################################################################
     23 #
     24 # Basic test for ln
     25 #
     26 TST_ID="ln01"
     27 TST_CNT=6
     28 TST_TESTFUNC=do_test
     29 TST_SETUP=setup
     30 TST_NEEDS_TMPDIR=1
     31 . tst_test.sh
     32 
     33 setup()
     34 {
     35 	ROD mkdir -p dir/subdir
     36 	ROD echo "LTP" > file
     37 	ROD touch dir/file
     38 }
     39 
     40 check_dir_link()
     41 {
     42 	local dname="$1"
     43 	local lname="$2"
     44 
     45 	ROD ls "$lname" > lname.out
     46 	ROD ls "$dname" > dname.out
     47 
     48 	if diff lname.out dname.out; then
     49 		tst_res TPASS "Directory and link content is equal"
     50 	else
     51 		tst_res TFAIL "Directory and link content differs"
     52 		cat lname.out
     53 		echo
     54 		cat dname.out
     55 	fi
     56 }
     57 
     58 check_file_link()
     59 {
     60 	local fname="$1"
     61 	local lname="$2"
     62 
     63 	if diff $fname $lname; then
     64 		tst_res TPASS "File and link content is equal"
     65 	else
     66 		tst_res TFAIL "File and link content differs"
     67 	fi
     68 }
     69 
     70 ln_test()
     71 {
     72 	local args="$1"
     73 	local src="$2"
     74 	local link="$3"
     75 
     76 	EXPECT_PASS ln $args $src $link
     77 
     78 	if [ -f $src ]; then
     79 		check_file_link $src $link
     80 	else
     81 		check_dir_link $src $link
     82 	fi
     83 
     84 	ROD rm $link
     85 }
     86 
     87 do_test()
     88 {
     89 	case $1 in
     90 	1) ln_test ""   "file"      "file_link";;
     91 	2) ln_test "-s" "file"      "file_link";;
     92 	3) ln_test "-s" "dir"       "dir_link";;
     93 	4) ln_test ""   "$PWD/file" "file_link";;
     94 	5) ln_test "-s" "$PWD/file" "file_link";;
     95 	6) ln_test "-s" "$PWD/dir"  "dir_link";;
     96 	esac
     97 }
     98 
     99 tst_run
    100