tests: add test for locale decimal processing
[coreutils.git] / tests / misc / date-sec.sh
blobf812fb2878409d53b5db48ee4de8be0ff7b9ddd1
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.
6 # Copyright (C) 2004-2019 Free Software Foundation, Inc.
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.
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.
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <https://www.gnu.org/licenses/>.
21 . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
22 print_ver_ date
26 # It would be easier simply to sleep for two seconds between two runs
27 # of $(date --date="21:04 +0100" +%S) and ensure that both outputs
28 # are '00', but I prefer not to sleep unconditionally. 'make check'
29 # takes long enough as it is.
31 n=0
32 # See if the current number of seconds is '00' or just before.
33 s=$(date +%S)
34 case "$s" in
35 58) n=3;;
36 59) n=2;;
37 00) n=1;;
38 esac
40 # If necessary, wait for the system clock to pass the minute mark.
41 test $n = 0 || sleep $n
43 s=$(date --date="21:04 +0100" +%S)
44 case "$s" in
45 00) ;;
46 *) fail=1;;
47 esac
49 Exit $fail