esp-idf/tools/ci/check_ut_cmake_make.sh

22 lines
805 B
Bash
Executable File

#!/usr/bin/env bash
EXCLUDE_UT_LIST_FILE="$( dirname -- "$0" )/exclude_check_ut_cmake_make_list.txt"
# While we support GNU Make & CMake together, check that unit tests support both
CMAKE_UT_PATHS=$( find ${IDF_PATH}/components/ -type f -name CMakeLists.txt | grep "/test/" | grep -v -F -f ${EXCLUDE_UT_LIST_FILE} )
MAKE_UT_PATHS=$( find ${IDF_PATH}/components/ -type f -name component.mk | grep "/test/" | grep -v -F -f ${EXCLUDE_UT_LIST_FILE} )
CMAKE_UT_PATHS="$(/usr/bin/dirname $CMAKE_UT_PATHS | sort -n)"
MAKE_UT_PATHS="$(/usr/bin/dirname $MAKE_UT_PATHS | sort -n)"
MISMATCH=$(comm -3 <(echo "$MAKE_UT_PATHS") <(echo "$CMAKE_UT_PATHS"))
if [ -n "$MISMATCH" ]; then
echo "Some unit tests are not in both CMake and GNU Make:"
echo "$MISMATCH"
exit 1
fi
echo "Unit tests match"
exit 0