diff --git a/Makefile b/Makefile index 36fe4de..143c7c3 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,9 @@ dunstify: dunstify.o .PHONY: test test-valgrind test-coverage test: test/test clean-coverage-run - ./test/test -v + # Make sure an error code is returned when the test fails + /usr/bin/env bash -c 'set -euo pipefail;\ + ./test/test -v | ./test/greenest.awk ' test-valgrind: test/test ${VALGRIND} \ diff --git a/test/greenest.awk b/test/greenest.awk new file mode 100755 index 0000000..48d1218 --- /dev/null +++ b/test/greenest.awk @@ -0,0 +1,33 @@ +#!/usr/bin/awk -f +# Copyright (c) 2016 Scott Vokes +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +BEGIN { + GREEN = "\033[32m" + RED = "\033[31m" + YELLOW = "\033[33m" + RESET = "\033[m" +} + +/^PASS/ { sub("PASS", GREEN "PASS" RESET) } +/^SKIP/ { sub("SKIP", YELLOW "SKIP" RESET) } +/^FAIL/ { sub("FAIL", RED "FAIL" RESET) } + +# highlight hexdump difference markers +/^[0-9a-f]/ { + sub("X", GREEN "X" RESET, $2) + gsub("<", GREEN "<" RESET, $0) +} + +{ print($0) }