#!/bin/bash # # Copyright (C) 2014 Sami Kerola # # This file is part of util-linux. # # This file 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 file 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. # TS_TOPDIR="${0%/*}/../.." TS_DESC="symlink check" . $TS_TOPDIR/functions.sh ts_init "$*" ts_check_test_command "$TS_CMD_RENAME" ts_cd "$TS_OUTDIR" for i in rename_slink.{1..3}; do ln -s old $i done $TS_CMD_RENAME -s -v old new rename_slink.? >> $TS_OUTPUT 2>> $TS_ERRLOG for i in rename_slink.{1..3}; do where="$(readlink $i)" if [ "$where" != "new" ]; then echo "error: $i points to $where" >> $TS_OUTPUT fi rm -f $i done touch target ln -s target rename_slink.1 $TS_CMD_RENAME -v slink symlink rename_slink.1 >> $TS_OUTPUT 2>> $TS_ERRLOG readlink rename_symlink.1 >> $TS_OUTPUT 2>> $TS_ERRLOG rm -f rename_slink.1 rename_symlink.1 rm target ln -s target rename_slink.2 $TS_CMD_RENAME -v slink symlink rename_slink.2 >> $TS_OUTPUT 2>> $TS_ERRLOG readlink rename_symlink.2 >> $TS_OUTPUT 2>> $TS_ERRLOG rm -f rename_slink.2 rename_symlink.2 $TS_CMD_RENAME -v slink symlink rename_slink.3 >> $TS_OUTPUT 2>> $TS_ERRLOG # The error may differ on Mac OS X due to faccessat()/lstat(); normalize it. sed -i -e 's/\(rename_slink.3\): not accessible/\1/' -e 's/stat of \(rename_slink.3\) failed/\1/' $TS_ERRLOG ts_finalize