1#!/bin/sh 2# make sure truncate gives reasonable diagnostics 3# Note open() checks for trailing '/' before checking for existence 4# open (".", O_CREAT & (O_WRONLY | O_RDWR), ...) -> EISDIR 5# open ("missing/", O_CREAT & (O_WRONLY | O_RDWR), ...) -> EISDIR 6# open ("missing/file", O_CREAT & (O_WRONLY | O_RDWR), ...) -> ENOENT 7 8# Copyright (C) 2008-2023 Free Software Foundation, Inc. 9 10# This program is free software: you can redistribute it and/or modify 11# it under the terms of the GNU General Public License as published by 12# the Free Software Foundation, either version 3 of the License, or 13# (at your option) any later version. 14 15# This program is distributed in the hope that it will be useful, 16# but WITHOUT ANY WARRANTY; without even the implied warranty of 17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18# GNU General Public License for more details. 19 20# You should have received a copy of the GNU General Public License 21# along with this program. If not, see <https://www.gnu.org/licenses/>. 22 23. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src 24print_ver_ truncate 25skip_if_root_ 26 27 28d1=no 29 30dir=$d1/such-dir 31truncate -s0 $dir > out 2>&1 && fail=1 32cat <<EOF > exp 33truncate: cannot open '$dir' for writing: No such file or directory 34EOF 35compare exp out || fail=1 36 37dir=$d1/ 38truncate -s0 $dir > out 2>&1 && fail=1 39#The following can be returned at least 40#truncate: cannot open '$dir' for writing: Not a directory 41#truncate: cannot open '$dir' for writing: Is a directory 42 43Exit $fail 44