fish-shell/tests/checks/status-value.fish
Fabian Boehm 3bef75fb79 builtins: Don't crash for negative return values
Another from the "why are we asserting instead of doing something
sensible" department.

The alternative is to make exit() and return() compute their own exit
code, but tbh I don't want any *other* builtin to hit this either?

Fixes #9659

(cherry picked from commit a16abf22d9)
2023-09-08 19:57:41 +02:00

48 lines
1.1 KiB
Fish

# RUN: %fish -C 'set -g fish %fish' %s
# Empty commands should be 123
set empty_var
$empty_var
echo $status
# CHECK: 123
# CHECKERR: {{.*}} The expanded command was empty.
# CHECKERR: $empty_var
# CHECKERR: ^~~~~~~~~^
# Failed expansions
echo "$abc["
echo $status
# CHECK: 121
# CHECKERR: {{.*}} Invalid index value
# CHECKERR: echo "$abc["
# CHECKERR: ^
# Failed wildcards
echo *gibberishgibberishgibberish*
echo $status
# CHECK: 124
# CHECKERR: {{.*}} No matches for wildcard '*gibberishgibberishgibberish*'. {{.*}}
# CHECKERR: echo *gibberishgibberishgibberish*
# CHECKERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~^
$fish -c 'exit -5'
# CHECKERR: warning: builtin exit returned invalid exit code 251
echo $status
# CHECK: 251
$fish -c 'exit -1'
# CHECKERR: warning: builtin exit returned invalid exit code 255
echo $status
# CHECK: 255
# (we avoid 0, so this is turned into 255 again)
$fish -c 'exit -256'
# CHECKERR: warning: builtin exit returned invalid exit code 255
echo $status
# CHECK: 255
$fish -c 'exit -512'
# CHECKERR: warning: builtin exit returned invalid exit code 255
echo $status
# CHECK: 255