1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-04-24 02:45:04 +02:00

48606 + 48607 + unposted test: zmathfunc: Force arguments to be numbers and catch errors.

This commit is contained in:
Daniel Shahaf 2021-04-21 21:59:45 +00:00
parent e7711e37e4
commit b0bd14035d
3 changed files with 24 additions and 4 deletions

View File

@ -1,5 +1,9 @@
2021-04-21 Daniel Shahaf <d.s@daniel.shahaf.name>
* 48606 + 48607 + unposted test: Functions/Math/zmathfunc,
Test/Z02zmathfunc.ztst: zmathfunc: Force arguments to be numbers
and catch errors.
* unposted (cf. 48156): Test/Z02zmathfunc.ztst: New test.
* users/26635 (tweaked):

View File

@ -6,7 +6,12 @@ zsh_math_func_min() {
shift
local arg
for arg ; do
(( $arg < result )) && result=$arg
(( arg < result ))
case $? in
(0) (( result = arg ));;
(1) ;;
(*) return $?;;
esac
done
(( result ))
true # Careful here: `return 0` evaluates an arithmetic expression
@ -19,7 +24,12 @@ zsh_math_func_max() {
shift
local arg
for arg ; do
(( $arg > result )) && result=$arg
(( arg > result ))
case $? in
(0) (( result = arg ));;
(1) ;;
(*) return $?;;
esac
done
(( result ))
true # Careful here: `return 0` evaluates an arithmetic expression
@ -31,7 +41,7 @@ zsh_math_func_sum() {
local sum
local arg
for arg ; do
(( sum += $arg ))
(( sum += arg ))
done
(( sum ))
true # Careful here: `return 0` evaluates an arithmetic expression

View File

@ -44,7 +44,13 @@
?(eval):1: wrong number of arguments: max()
zsh_math_func_min "foo bar" x y z
2dDf:check errors from an unsupported use-case (workers/48156)
2d:check errors from an unsupported use-case (workers/48156)
# We expect one non-empty line of stderr, but don't care about the specific
# error message; thus, the expectation is a pattern (*), for stderr (?), which
# matches any non-empty string (?*).
#
# Sorry, Perl, but I had to give you a run for your money.
*??*
F:Calling zsh_math_func_min directly isn't a supported use-case, but if it
F:returns zero, something's probably wrong.