1#!/bin/sh 2# tests for canonicalize mode (readlink -f). 3 4# Copyright (C) 2004-2023 Free Software Foundation, Inc. 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 3 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, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <https://www.gnu.org/licenses/>. 18 19. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src 20print_ver_ readlink pwd 21 22pwd=$(pwd) 23my_pwd=$(env pwd -P) 24tmp=d 25 26mkdir $tmp || framework_failure_ 27cd $tmp || framework_failure_ 28 29mkdir subdir removed || framework_failure_ 30touch regfile || framework_failure_ 31 32ln -s regfile link1 || framework_failure_ 33ln -s subdir link2 || framework_failure_ 34ln -s missing link3 || framework_failure_ 35ln -s subdir/missing link4 || framework_failure_ 36ln -s link5 link5 || framework_failure_ 37 38cd "$pwd/$tmp/removed" || framework_failure_ 39 40# Skip this test if the system doesn't let you remove the working directory. 41if rmdir ../removed 2>/dev/null; then 42 v=$(returns_ 1 readlink -e .) || fail=1 43 test -z "$v" || fail=1 44fi 45 46cd "$pwd/$tmp" || fail=1 47 48for p in "" "$pwd/$tmp/"; do 49 50 v=$(readlink -f "${p}regfile") || fail=1 51 test "$v" = "$my_pwd/$tmp/regfile" || fail=1 52 53 v=$(returns_ 1 readlink -f "${p}./regfile/") || fail=1 54 test -z "$v" || fail=1 55 56 v=$(returns_ 1 readlink -f "${p}regfile/more") || fail=1 57 test -z "$v" || fail=1 58 59 v=$(returns_ 1 readlink -f "${p}./regfile/more/") || fail=1 60 test -z "$v" || fail=1 61 62 v=$(readlink -f "${p}subdir") || fail=1 63 test "$v" = "$my_pwd/$tmp/subdir" || fail=1 64 65 v=$(readlink -f "${p}./subdir/") || fail=1 66 test "$v" = "$my_pwd/$tmp/subdir" || fail=1 67 68 v=$(readlink -f "${p}subdir/more") || fail=1 69 test "$v" = "$my_pwd/$tmp/subdir/more" || fail=1 70 71 v=$(readlink -f "${p}./subdir/more/") || fail=1 72 test "$v" = "$my_pwd/$tmp/subdir/more" || fail=1 73 74 v=$(readlink -f "${p}missing") || fail=1 75 test "$v" = "$my_pwd/$tmp/missing" || fail=1 76 77 v=$(readlink -f "${p}./missing/") || fail=1 78 test "$v" = "$my_pwd/$tmp/missing" || fail=1 79 80 v=$(returns_ 1 readlink -f "${p}missing/more") || fail=1 81 test -z "$v" || fail=1 82 83 v=$(returns_ 1 readlink -f "${p}./missing/more/") || fail=1 84 test -z "$v" || fail=1 85 86 v=$(readlink -f "${p}link1") || fail=1 87 test "$v" = "$my_pwd/$tmp/regfile" || fail=1 88 89 v=$(returns_ 1 readlink -f "${p}./link1/") || fail=1 90 test -z "$v" || fail=1 91 92 v=$(returns_ 1 readlink -f "${p}link1/more") || fail=1 93 test -z "$v" || fail=1 94 95 v=$(returns_ 1 readlink -f "${p}./link1/more/") || fail=1 96 test -z "$v" || fail=1 97 98 v=$(readlink -f "${p}link2") || fail=1 99 test "$v" = "$my_pwd/$tmp/subdir" || fail=1 100 101 v=$(readlink -f "${p}./link2/") || fail=1 102 test "$v" = "$my_pwd/$tmp/subdir" || fail=1 103 104 v=$(readlink -f "${p}link2/more") || fail=1 105 test "$v" = "$my_pwd/$tmp/subdir/more" || fail=1 106 107 v=$(readlink -f "${p}./link2/more/") || fail=1 108 test "$v" = "$my_pwd/$tmp/subdir/more" || fail=1 109 110 v=$(returns_ 1 readlink -f "${p}link2/more/more2") || fail=1 111 test -z "$v" || fail=1 112 113 v=$(returns_ 1 readlink -f "${p}./link2/more/more2/") || fail=1 114 test -z "$v" || fail=1 115 116 v=$(readlink -f "${p}link3") || fail=1 117 test "$v" = "$my_pwd/$tmp/missing" || fail=1 118 119 v=$(readlink -f "${p}./link3/") || fail=1 120 test "$v" = "$my_pwd/$tmp/missing" || fail=1 121 122 v=$(returns_ 1 readlink -f "${p}link3/more") || fail=1 123 test -z "$v" || fail=1 124 125 v=$(returns_ 1 readlink -f "${p}./link3/more/") || fail=1 126 test -z "$v" || fail=1 127 128 v=$(readlink -f "${p}link4") || fail=1 129 test "$v" = "$my_pwd/$tmp/subdir/missing" || fail=1 130 131 v=$(readlink -f "${p}./link4/") || fail=1 132 test "$v" = "$my_pwd/$tmp/subdir/missing" || fail=1 133 134 v=$(returns_ 1 readlink -f "${p}link4/more") || fail=1 135 test -z "$v" || fail=1 136 137 v=$(returns_ 1 readlink -f "${p}./link4/more") || fail=1 138 test -z "$v" || fail=1 139 140 v=$(returns_ 1 readlink -f "${p}link5") || fail=1 141 test -z "$v" || fail=1 142 143 v=$(returns_ 1 readlink -f "${p}./link5/") || fail=1 144 test -z "$v" || fail=1 145 146 v=$(returns_ 1 readlink -f "${p}link5/more") || fail=1 147 test -z "$v" || fail=1 148 149 v=$(returns_ 1 readlink -f "${p}./link5/more") || fail=1 150 test -z "$v" || fail=1 151done 152 153Exit $fail 154