summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank LENORMAND <lenormf@gmail.com>2015-12-12 11:51:48 +0300
committerFrank LENORMAND <lenormf@gmail.com>2015-12-12 12:06:16 +0300
commitd63238ed9d702798d4e44dafa0f82d4664eed477 (patch)
treefb6e4ac5eca44ffaad048d2b5d41b7324bcbea9e
parent1ed866dbf09955abfbb46a7068a8a8dc2c6a9847 (diff)
Allow unit tests to test for errors.
-rwxr-xr-xtest/run62
1 files changed, 37 insertions, 25 deletions
diff --git a/test/run b/test/run
index 8d59eb39..93351e46 100755
--- a/test/run
+++ b/test/run
@@ -15,7 +15,11 @@ main() {
test_files=$(ls out selections state 2>/dev/null)
cd $work/$dir;
indent="$(echo "${dir}/" | sed -e 's|[^/]*/\+| |g')"
- name=$(basename $PWD)
+ name=$(echo ${PWD##*/} | sed 's/-fail^//')
+ should_fail=0
+ if [ ${PWD##*-} = fail ]; then
+ should_fail=1
+ fi
if ! test -e cmd; then
echo "$indent$name"
elif test -x enabled && ! ./enabled; then
@@ -46,32 +50,40 @@ main() {
"
${test}/../src/kak out -n -u -e "$kak_commands"
retval=$?
- if [ $retval -ne 0 ]; then
+ if [ $should_fail = 0 ]; then
+ if [ $retval -ne 0 ]; then
echo "Kakoune returned error $retval"
- fi
- for expect in $test_files; do
- if cmp -s $test/$dir/$expect $expect; then
- echo "$indent$name" | colorize green normal
- else
- number_failures=$(($number_failures + 1))
- echo "$indent$name" | colorize red normal
- echo
- diff -u $test/$dir/$expect $expect | while read -r line; do
- first_character=$(echo "$line" | cut -b 1)
- case $first_character in
- +) color=green ;;
- -) color=red ;;
- @) color=magenta ;;
- *) color=none ;;
- esac
- echo "$line" | colorize $color normal
- done
- echo
- echo "debug buffer:" | colorize yellow normal
- cat debug
- echo
fi
- done
+ for expect in $test_files; do
+ if cmp -s $test/$dir/$expect $expect; then
+ echo "$indent$name" | colorize green normal
+ else
+ number_failures=$(($number_failures + 1))
+ echo "$indent$name" | colorize red normal
+ echo
+ diff -u $test/$dir/$expect $expect | while read -r line; do
+ first_character=$(echo "$line" | cut -b 1)
+ case $first_character in
+ +) color=green ;;
+ -) color=red ;;
+ @) color=magenta ;;
+ *) color=none ;;
+ esac
+ echo "$line" | colorize $color normal
+ done
+ echo
+ echo "debug buffer:" | colorize yellow normal
+ cat debug
+ echo
+ fi
+ done
+ else
+ if [ $retval -eq 0 ]; then
+ color=red
+ fi
+ color=${color:-green}
+ echo "$indent$name" | colorize $color normal
+ fi
fi
done
if expr $number_failures > 0; then