Files
openvehicle-api/tests/run_tests_on_linux.sh

41 lines
1.5 KiB
Bash
Raw Normal View History

############################## ATTENTION ##############################
# Shell Script to execute the tests on Linux #
# Adjust the permission with: chmod +x run_tests_on_linux.sh #
# Run the script with: ./run_tests_on_linux.sh #
# or: bash ./run_tests_on_linux.sh #
#######################################################################
#!/bin/bash
# Define the directory to search
directory="bin"
# Sammeln der ausführbaren Dateien in einem Array
IFS=$'\n' read -r -d '' -a RUN_TESTS < <(find bin -type f \( -name "ComponentTest_*" -o -name "UnitTest_*" \) -executable -exec sh -c 'for file; do [ "${file##*.}" = "$file" ] && echo "$file"; done' sh {} \; && printf '\0')
# Array to hold failed tests
FAILED_TESTS=()
# Run all tests and capture output
for TEST_EXECUTABLE in "${RUN_TESTS[@]}"; do
if [ -f "$TEST_EXECUTABLE" ]; then
OUTPUT=$($TEST_EXECUTABLE --gtest_output=xml:../bin/$(basename $TEST_EXECUTABLE).xml 2>&1)
echo "$OUTPUT"
if echo "$OUTPUT" | grep -q "FAILED"; then
FAILED_TESTS+=("$TEST_EXECUTABLE")
fi
else
echo "Executable $TEST_EXECUTABLE not found!"
fi
done
# List all failed tests at the end
if [ ${#FAILED_TESTS[@]} -ne 0 ]; then
echo -e "\n\e[31mFailed tests:\e[0m"
for TEST in "${FAILED_TESTS[@]}"; do
echo -e "\e[31m$TEST\e[0m"
done
else
echo -e "\n\e[32mAll tests passed!\e[0m"
fi