2024-04-12 10:19:32 +00:00
|
|
|
#RUN: %fish -C 'set -l fish %fish; set -l filter_ctrls %filter-control-sequences' %s
|
2021-07-21 20:33:39 +00:00
|
|
|
# Some tests of the "return" builtin.
|
|
|
|
|
|
|
|
$fish -c 'return 5'
|
|
|
|
echo $status
|
|
|
|
# CHECK: 5
|
|
|
|
|
|
|
|
$fish -c 'exit 5'
|
|
|
|
echo $status
|
|
|
|
# CHECK: 5
|
|
|
|
|
|
|
|
$fish -c 'echo foo; return 2; echo bar'
|
|
|
|
# CHECK: foo
|
|
|
|
# but not bar
|
|
|
|
echo $status
|
|
|
|
# CHECK: 2
|
|
|
|
|
2024-04-12 10:19:32 +00:00
|
|
|
begin
|
|
|
|
$fish -ic 'echo interactive-foo; return 69; echo interactive-bar'
|
|
|
|
# CHECK: interactive-foo
|
|
|
|
# but not bar
|
|
|
|
echo $status
|
|
|
|
# CHECK: 69
|
|
|
|
end | $filter_ctrls
|
2022-09-25 17:37:10 +00:00
|
|
|
|
|
|
|
# Verify negative return values don't cause UB and never map to 0
|
|
|
|
function empty_return
|
|
|
|
return $argv[1]
|
|
|
|
end
|
|
|
|
|
2022-10-23 20:42:53 +00:00
|
|
|
for i in (seq -- -550 -1)
|
2022-09-25 17:37:10 +00:00
|
|
|
empty_return $i
|
|
|
|
if test $status -eq 0
|
|
|
|
echo returning $i from a fish script maps to a $status of 0!
|
|
|
|
end
|
|
|
|
end
|
|
|
|
# CHECK:
|