mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-22 14:43:55 +08:00
Test return builtin doesn't map negative numbers to zero
Prior to 1811a2d
, the return value for negative return codes was UB and I'd
witnessed both expected cases like -256 mapping to a $status of 0 and unexpected
cases like a return value of -1 mapping to a $status of 0. As such, this doesn't
test just one fixed return value but the entire range from negative multiples of
256 all the way down (rather, up!) to -1.
This commit is contained in:
parent
1811a2d725
commit
3ebfba7f5b
|
@ -20,3 +20,16 @@ $fish -ic 'echo interactive-foo; return 69; echo interactive-bar'
|
|||
# but not bar
|
||||
echo $status
|
||||
# CHECK: 69
|
||||
|
||||
# Verify negative return values don't cause UB and never map to 0
|
||||
function empty_return
|
||||
return $argv[1]
|
||||
end
|
||||
|
||||
for i in (seq -550 -1)
|
||||
empty_return $i
|
||||
if test $status -eq 0
|
||||
echo returning $i from a fish script maps to a $status of 0!
|
||||
end
|
||||
end
|
||||
# CHECK:
|
||||
|
|
Loading…
Reference in New Issue
Block a user