dd: don’t trust st_size on /proc/files
[coreutils.git] / tests / misc / read-errors.sh
blob3f1e0c42c05dad4df2ebc51e143f677f084bb082
1 #!/bin/sh
2 # Make sure all of these programs diagnose read errors
4 # Copyright (C) 2023-2024 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
21 ! cat . >/dev/null 2>&1 || skip_ "Need unreadable directories"
23 echo "\
24 basenc --base32 .
25 basenc -d --base64 .
26 cat .
27 cksum -a blake2b .
28 cksum -a bsd .
29 cksum -a crc .
30 cksum -a md5 .
31 cksum -a sha1 .
32 cksum -a sha224 .
33 cksum -a sha256 .
34 cksum -a sha384 .
35 cksum -a sha512 .
36 cksum -a sm3 .
37 cksum -a sysv .
38 comm . .
39 csplit . 1
40 cut -c1 .
41 cut -f1 .
42 date -f .
43 dd if=.
44 dircolors .
45 expand .
46 factor < .
47 fmt .
48 fold .
49 head -n1 .
50 head -n-1 .
51 head -c1 .
52 head -c-1 .
53 join . .
54 nl .
55 numfmt < .
56 od .
57 paste .
58 pr .
59 ptx .
60 shuf -r .
61 shuf -n1 .
62 sort .
63 split -l1 .
64 split -b1 .
65 split -C1 .
66 split -n1 .
67 split -nl/1 .
68 split -nr/1 .
69 tac .
70 tail -n1 .
71 tail -c1 .
72 tail -n+1 .
73 tail -c+1 .
74 tee < .
75 tr 1 1 < .
76 tsort .
77 unexpand .
78 uniq .
79 uniq -c .
80 wc .
81 wc -c .
82 wc -l .
83 " |
84 sort -k 1b,1 > all_readers || framework_failure_
86 printf '%s\n' $built_programs |
87 sort -k 1b,1 > built_programs || framework_failure_
89 join all_readers built_programs > built_readers || framework_failure_
91 while read reader; do
92 eval $reader >/dev/null && { fail=1; echo "$reader: exited with 0" >&2; }
93 done < built_readers
95 Exit $fail