diff --git a/CMakeLists.txt b/CMakeLists.txt index 5abd1f4..0112520 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,7 @@ install(TARGETS pycdc RUNTIME DESTINATION bin) # For tests -add_custom_target(test ${CMAKE_CURRENT_SOURCE_DIR}/pycdc_test.sh - ${CMAKE_CURRENT_SOURCE_DIR}/tests) +add_custom_target(test "${CMAKE_CURRENT_SOURCE_DIR}/pycdc_test.sh" + "${CMAKE_CURRENT_SOURCE_DIR}/tests" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") add_dependencies(test pycdc) diff --git a/pycdc_test.sh b/pycdc_test.sh index 69c7a97..fb09055 100755 --- a/pycdc_test.sh +++ b/pycdc_test.sh @@ -1,27 +1,28 @@ #!/bin/bash +testdir="$1" mkdir -p tests fails=0 files=() errors=() -for f in $1/*.pyc +for f in "$testdir"/*.pyc do - base=tests/$( basename "$f" ) - stderr=$( ./pycdc "$f" 2>$base.err 1>$base.src ) - if [ "$?" -eq "0" -a -z "$stderr" ] + base="tests/$(basename "$f")" + ./pycdc "$f" 2>"$base.err" 1>"$base.src" + if (( $? )) || [[ -s "$base.err" ]] then - echo -ne "\033[32m.\033[m" - else let fails+=1 - files=("${files[@]}" "$f") - errors=("${errors[@]}" "$stderr") + files+=("$f") + errors+=("$(cat "$base.err")") echo -ne "\033[31m.\033[m" + else + echo -ne "\033[32m.\033[m" fi done echo -e "\n\n$fails tests failed:" for ((i=0; i<${#files[@]}; i++)) do echo -e "\t\033[31m${files[i]}\033[m" -echo -e "${errors[i]}\n" + echo -e "${errors[i]}\n" done