1#!/bin/sh 2# test multiple argument handling. 3 4# Copyright (C) 2012-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 21 22touch regfile || framework_failure_ 23ln -s regfile link1 || framework_failure_ 24 25readlink link1 link1 || fail=1 26returns_ 1 readlink link1 link2 || fail=1 27returns_ 1 readlink link1 link2 link1 || fail=1 28readlink -m link1 link2 || fail=1 29 30printf '/1\0/1\0' > exp || framework_failure_ 31readlink -m --zero /1 /1 > out || fail=1 32compare exp out || fail=1 33 34# The largely redundant --no-newline option is ignored with multiple args. 35# Note BSD's readlink suppresses all delimiters, even with multiple args, 36# but that functionality was not thought useful. 37readlink -n -m --zero /1 /1 > out || fail=1 38compare exp out || fail=1 39 40# Note the edge case that the last xargs run may not have a delimiter 41rm out || framework_failure_ 42printf '/1\0/1\0/1' > exp || framework_failure_ 43printf '/1 /1 /1 ' | xargs -n2 readlink -n -m --zero >> out || fail=1 44compare exp out || fail=1 45 46Exit $fail 47