fish-shell/tests/test_util.fish
Kevin Ballard 5f82f721d2 Rejigger test suite
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.
2014-09-23 22:39:23 -07:00

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