diff options
| author | Frank LENORMAND <lenormf@gmail.com> | 2015-12-12 11:51:48 +0300 |
|---|---|---|
| committer | Frank LENORMAND <lenormf@gmail.com> | 2015-12-12 12:06:16 +0300 |
| commit | d63238ed9d702798d4e44dafa0f82d4664eed477 (patch) | |
| tree | fb6e4ac5eca44ffaad048d2b5d41b7324bcbea9e | |
| parent | 1ed866dbf09955abfbb46a7068a8a8dc2c6a9847 (diff) | |
Allow unit tests to test for errors.
| -rwxr-xr-x | test/run | 62 |
1 files changed, 37 insertions, 25 deletions
@@ -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 |
