build: ensure make-prime-list doesn't access out of bounds memory
[platform/upstream/coreutils.git] / tests / misc / date-sec.sh
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-2013 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 . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
22 print_ver_ date
23
24
25
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.
30
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
39
40 # If necessary, wait for the system clock to pass the minute mark.
41 test $n = 0 || sleep $n
42
43 s=$(date --date="21:04 +0100" +%S)
44 case "$s" in
45   00) ;;
46   *) fail=1;;
47 esac
48
49 Exit $fail