From 5f82f721d2bcdf13b04eefc52358c5c6746e4041 Mon Sep 17 00:00:00 2001 From: Kevin Ballard Date: Tue, 23 Sep 2014 16:29:36 -0700 Subject: 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. --- tests/test_util.fish | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tests/test_util.fish (limited to 'tests/test_util.fish') diff --git a/tests/test_util.fish b/tests/test_util.fish new file mode 100644 index 00000000..b81e17f6 --- /dev/null +++ b/tests/test_util.fish @@ -0,0 +1,58 @@ +# 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 -- cgit v1.2.3