Improve the check for departures from C89, and fix the departures
[platform/upstream/coreutils.git] / src / du-tests
1 #!/bin/bash
2
3 # Copyright (C) 2003, 2006 Free Software Foundation, Inc.
4
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2, or (at your option)
8 # any later version.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software Foundation,
17 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 cat - <<\EOF > /dev/null
20 Invoke e.g., like this
21 VG_PATH_PREFIX=/cu/src/vg: DU1=/cu/src/du DU2=/usr/bin/du ./du-tests
22 Where /cu/src/vg/du is a valgrind wrapper around du,
23 and DU1 refers to the just-built du binary you want to test.
24 EOF
25
26 test -z "$DU1" && { echo DU1 envvar not set 1>&2; exit 1; }
27 test -z "$DU2" && { echo DU2 envvar not set 1>&2; exit 1; }
28
29 test -x "$DU1" || { echo $DU1 not executable 1>&2; exit 1; }
30 test -x "$DU2" || { echo $DU2 not executable 1>&2; exit 1; }
31
32 # Expects $DU1 and $DU2 to be the binaries to compare.
33 d1=$(mktemp -d)
34 cp -a $DU1 $d1/du
35 d2=$(mktemp -d)
36 cp -a $DU2 $d2/du
37
38 for args in  \
39     '-Sa .' \
40     '-Sa ../..' \
41     '-Sa a' \
42     '-Sa /tmp /t' \
43     '-Sa /tmp' \
44     '/tmp /t' \
45     '-a /tmp /t' \
46     '-a a' \
47     '-ca .' \
48     '-ca ..' \
49     '-ca ../..' \
50     '-ca /tmp /t' \
51     '-ca /tmp' \
52     '-ca a' \
53   ; do
54   echo Args: $args ======================
55   diff -u --label=$DU1 --label=$DU2 \
56     <(PATH=$VG_PATH_PREFIX$d1 du $args 2>&1) <(PATH=$d2 du $args 2>&1)
57 done
58 rm -rf $d1 $d2