diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2023-03-04 16:51:11 -0800 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2023-03-04 16:57:16 -0800 |
| commit | 110bcd28386b1f47a4cd876098acb708fdcbbb25 (patch) | |
| tree | 8ed76d8b3e55d094e37a9ccb5d5c386d44abe3df /tests | |
| parent | split: tune for when creating output files (diff) | |
| download | coreutils-110bcd28386b1f47a4cd876098acb708fdcbbb25.tar.gz coreutils-110bcd28386b1f47a4cd876098acb708fdcbbb25.zip | |
du: --apparent counts only symlinks and regular
Problem reported by Christoph Anton Mitterer (Bug#61884).
* src/du.c (process_file): When counting apparent sizes, count
only usable st_size members.
* tests/du/apparent.sh: New file.
* tests/local.mk (all_root_tests): Add it.
Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/du/apparent.sh | 33 | ||||
| -rw-r--r-- | tests/local.mk | 1 |
2 files changed, 34 insertions, 0 deletions
diff --git a/tests/du/apparent.sh b/tests/du/apparent.sh new file mode 100755 index 000000000..dba3031d4 --- /dev/null +++ b/tests/du/apparent.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# Exercise du's --apparent-size option. + +# Copyright 2023 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src +print_ver_ du + +mkdir -p d || framework_failure_ +for f in $(seq 100); do + echo foo >d/$f || framework_failure_ +done + +du -b d/* >separate || fail=1 +du -b d >together || fail=1 +separate_sum=$($AWK '{sum+=$1}END{print sum}' separate) || framework_failure_ +together_sum=$($AWK '{sum+=$1}END{print sum}' together) || framework_failure_ +test $separate_sum -eq $together_sum || fail=1 + +Exit $fail diff --git a/tests/local.mk b/tests/local.mk index c8db95e99..1fe04235d 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -118,6 +118,7 @@ all_root_tests = \ tests/dd/skip-seek-past-dev.sh \ tests/df/problematic-chars.sh \ tests/df/over-mount-device.sh \ + tests/du/apparent.sh \ tests/du/bind-mount-dir-cycle.sh \ tests/du/bind-mount-dir-cycle-v2.sh \ tests/id/setgid.sh \ |
