mirror of
https://github.com/fish-shell/fish-shell
synced 2024-11-14 17:07:44 +00:00
5f82f721d2
Split test_interactive off from test_fishscript and add a new target test_high_level that tests both. Add some Makefile magic so the tests can be run serially without using sub-make, which gets rid of a little noise from the make output. Rewrite interactive tests to look better.
58 lines
1.1 KiB
Fish
58 lines
1.1 KiB
Fish
# Utilities for the test runners
|
|
|
|
function die
|
|
echo $argv[1] >&2
|
|
exit 1
|
|
end
|
|
|
|
if not tty 0>&1 >/dev/null
|
|
function set_color
|
|
# do nothing
|
|
return 0
|
|
end
|
|
end
|
|
|
|
function say
|
|
set -l color_flags
|
|
while set -q argv[1]
|
|
switch $argv[1]
|
|
case -b -o -u
|
|
set color_flags $color_flags $argv[1]
|
|
case --
|
|
set -e argv[1]
|
|
break
|
|
case -\*
|
|
case \*
|
|
break
|
|
end
|
|
set -e argv[1]
|
|
end
|
|
|
|
if not set -q argv[1]
|
|
echo 'usage: say [flags] color [string...]' >&2
|
|
return 1
|
|
end
|
|
|
|
if set_color $color_flags $argv[1]
|
|
set -e argv[1]
|
|
echo $argv
|
|
set -l stat $status
|
|
set_color reset
|
|
or return $stat
|
|
end
|
|
end
|
|
|
|
function colordiff -d 'Colored diff output for unified diffs'
|
|
diff $argv | while read -l line
|
|
switch $line
|
|
case '+*'
|
|
say green $line
|
|
case '-*'
|
|
say red $line
|
|
case '@*'
|
|
say cyan $line
|
|
case '*'
|
|
echo $line
|
|
end
|
|
end
|
|
end
|