#!/bin/bash

#
# Copyright (C) 2014 Sami Kerola <kerolasa@iki.fi>
#
# 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>&1

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

ts_finalize
