mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-06-16 18:31:14 -03:00
With a few exceptions, only one test is added for a given message, even when there are multiple ways to trigger the same message (e.g. different invalid option combinations, or triggered in shared functions such as `builtin_unknown_option`) Includes a few very minor fixes, such as missing a newline, or using the wrong var name. Closes #12603
52 lines
1.0 KiB
Fish
52 lines
1.0 KiB
Fish
#RUN: fish=%fish %fish %s
|
|
# 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
|
|
|
|
begin
|
|
$fish -ic 'echo interactive-foo; return 69; echo interactive-bar'
|
|
# CHECK: interactive-foo
|
|
# but not bar
|
|
echo $status
|
|
# CHECK: 69
|
|
end
|
|
|
|
# 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:
|
|
|
|
$fish -c "return 1 2"
|
|
# CHECKERR: return: too many arguments
|
|
# CHECKERR: Standard input (line 1):
|
|
# CHECKERR: return 1 2
|
|
# CHECKERR: ^
|
|
# CHECKERR: (Type 'help return' for related documentation)
|
|
|
|
$fish -c "return abc"
|
|
# CHECKERR: return: abc: invalid integer
|
|
# CHECKERR: Standard input (line 1):
|
|
# CHECKERR: return abc
|
|
# CHECKERR: ^
|
|
# CHECKERR: (Type 'help return' for related documentation)
|