fish-shell/tests/checks/status-command.fish
Johannes Altmanninger 1e858eae35 tests: filter control sequences only when interactive
This demonstrates that we only write control sequences when interactive.
2024-04-12 12:28:22 +02:00

59 lines
1.2 KiB
Fish

#RUN: env FISH_PATH=%fish FILE_PATH=%s %fish %s
status line-number
# CHECK: 3
# Check status fish-path
# No output expected on success
#
# argv[0] on OpenBSD is just the filename, not the path
# That means fish-path is unsupportable there.
if not contains (uname) OpenBSD
set status_fish_path (realpath (status fish-path))
set env_fish_path (realpath $FISH_PATH)
test "$status_fish_path" = "$env_fish_path"
or echo "Fish path disagreement: $status_fish_path vs $env_fish_path"
end
# Check is-block
status is-block
echo $status
begin
status is-block
echo $status
end
# CHECK: 1
# CHECK: 0
# Check filename
set status_filename (status filename)
test (status filename) = "$FILE_PATH"
or echo "File path disagreement: $status_filename vs $FILE_PATH"
function print_my_name
status function
end
print_my_name
# CHECK: print_my_name
status is-command-substitution
echo $status
echo (status is-command-substitution; echo $status)
# CHECK: 1
# CHECK: 0
test (status filename) = (status dirname)/(status basename)
status basename
#CHECK: status-command.fish
status dirname | string match -q '*checks'
echo $status
#CHECK: 0
echo "status dirname" | source
#CHECK: .
$FISH_PATH -c 'status dirname'
#CHECK: Standard input