tests: factor 350 fail=0 initializations into test-lib.sh
[platform/upstream/coreutils.git] / tests / misc / date-sec
1 #!/bin/sh
2 # Ensure that a command like
3 # `date --date="21:04 +0100" +%S' always prints `00'.
4 # Before coreutils-5.2.1, it would print the seconds from the current time.
5
6 # Copyright (C) 2004, 2006, 2008-2009 Free Software Foundation, Inc.
7
8 # This program is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation, either version 3 of the License, or
11 # (at your option) any later version.
12
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17
18 # You should have received a copy of the GNU General Public License
19 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
21 if test "$VERBOSE" = yes; then
22   set -x
23   date --version
24 fi
25
26 . $srcdir/test-lib.sh
27
28
29
30 # It would be easier simply to sleep for two seconds between two runs
31 # of `date --date="21:04 +0100" +%S` and ensure that both outputs
32 # are `00', but I prefer not to sleep unconditionally.  `make check'
33 # takes long enough as it is.
34
35 n=0
36 # See if the current number of seconds is `00' or just before.
37 s=`date +%S`
38 case "$s" in
39   58) n=3;;
40   59) n=2;;
41   00) n=1;;
42 esac
43
44 # If necessary, wait for the system clock to pass the minute mark.
45 test $n = 0 || sleep $n
46
47 s=`date --date="21:04 +0100" +%S`
48 case "$s" in
49   00) ;;
50   *) fail=1;;
51 esac
52
53 Exit $fail