tests: move tests to a directory per utility
[coreutils.git] / tests / tac / tac-2-nonseekable.sh
blob8e8075fa652adb515c1bb015525820e3d49488a0
1 #!/bin/sh
2 # ensure that tac works with non-seekable or quasi-seekable inputs
4 # Copyright (C) 2011-2023 Free Software Foundation, Inc.
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.
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.
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/>.
19 . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
20 print_ver_ tac
22 echo x | tac - - > out 2> err || fail=1
23 echo x > exp || framework_failure_
24 compare exp out || fail=1
25 compare /dev/null err || fail=1
27 # Make sure it works on funny files in /proc and /sys.
29 for file in /proc/version /sys/kernel/profiling; do
30 if test -r $file; then
31 cp -f $file copy &&
32 tac copy > exp1 || framework_failure_
34 tac $file > out1 || fail=1
35 compare exp1 out1 || fail=1
37 done
39 # Assume timeout is due to failure to close stdin with <&-
40 # which was seen on NetBSD 7.1 / x86_64
41 returns_ 124 timeout 10 tac - - <&- 2>err && skip_ 'error closing stdin'
42 # This failed due to heap corruption from v8.15-v8.25 inclusive.
43 returns_ 1 timeout 10 tac - - <&- 2>err || fail=1
45 Exit $fail