1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-03-31 01:04:13 +02:00
Files
coreutils/tests/misc/timeout-parameters
Paul Eggert 240a633756 timeout: treat seconds counts like 'sleep' does
Treat fractions as a request to round up to the next representable
value, and treat out-of-range values as maximal ones.  This is
consistent with how "sleep" works.  And this way, "timeout
999999999999999999d FOO" and "timeout 4.5 foo" are more likely to
do what the user wants.
* src/timeout.c: Include c-strtod.h and xstrtod.h, not xstrtol.h.
(apply_time_suffix): Change it to the way sleep.c's time_suffix
does things.  Maybe this function (identical in both programs,
other than its name) should be moved to a library?
(parse_duration): Return a maximal value on overflow.  Return
unsigned int, not unsigned long.  Allow fractions, which round
up to the next integer value.
* tests/misc/timeout-parameters: Adjust tests to match new behavior.
Add a very large number.
2011-07-16 12:10:45 -07:00

71 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
# Validate timeout parameter combinations
# Copyright (C) 2008-2011 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 <http://www.gnu.org/licenses/>.
. "${srcdir=.}/init.sh"; path_prepend_ ../src
print_ver_ timeout
getlimits_
# internal errors are 125, distinct from execution failure
# invalid timeout
timeout invalid sleep 0
test $? = 125 || fail=1
# invalid kill delay
timeout --kill-after=invalid 1 sleep 0
test $? = 125 || fail=1
# invalid timeout suffix
timeout 42D sleep 0
test $? = 125 || fail=1
# timeout overflow
timeout $UINT_OFLOW sleep 0
test $? = 0 || fail=1
# timeout overflow
timeout $(expr $UINT_MAX / 86400 + 1)d sleep 0
test $? = 0 || fail=1
# timeout overflow
timeout 999999999999999999999999999999999999999999999999999999999999d sleep 0
test $? = 0 || fail=1
# floating point notation
timeout 2.34 sleep 0
test $? = 0 || fail=1
# floating point notation
timeout 2.34e+5d sleep 0
test $? = 0 || fail=1
# invalid signal spec
timeout --signal=invalid 1 sleep 0
test $? = 125 || fail=1
# invalid command
timeout 10 .
test $? = 126 || fail=1
# no such command
timeout 10 no_such
test $? = 127 || fail=1
Exit $fail