diff options
Diffstat (limited to 'FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Unit/Makefile')
-rw-r--r-- | FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Unit/Makefile | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Unit/Makefile b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Unit/Makefile new file mode 100644 index 000000000..2cf572cbb --- /dev/null +++ b/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Unit/Makefile @@ -0,0 +1,110 @@ +#CC := /usr/local/bin/gcc +#GCOV := /usr/local/bin/gcov + +EXECUTABLE=cmock_test +ROOT_DIR ?= $(shell pwd) + +CONFIGURATION_DIR ?= ${ROOT_DIR}/tools/configuration + +CMOCK_DIR ?= ${ROOT_DIR}/../CMock +CMOCK_SRC_DIR ?= ${CMOCK_DIR}/src +CMOCK_INCLUDE_DIR ?= ${CMOCK_SRC_DIR} +CMOCK_LIB_DIR ?= ${CMOCK_DIR}/lib + +UNITY_DIR ?= ${CMOCK_DIR}/vendor/unity +UNITY_SRC_DIR ?= ${UNITY_DIR}/src +UNITY_INCLUDE_DIR ?= ${UNITY_SRC_DIR} +UNITY_BIN_DIR ?= ${UNITY_DIR}/auto +UNITY_FIXTURE_DIR ?= ${UNITY_DIR}/extras/fixture/src +UNITY_MEMORY_DIR ?= ${UNITY_DIR}/extras/memory/src + +BUILD_DIR ?= ${ROOT_DIR}/build +LIB_DIR ?= ${ROOT_DIR}/build/lib +BIN_DIR ?= ${ROOT_DIR}/build/bin +MOCKS_DIR ?= ${ROOT_DIR}/build/mocks +GEN_DIR ?= ${ROOT_DIR}/build/generated + +SRC_DIR ?= ${ROOT_DIR}/../../Source/FreeRTOS-Plus-TCP/test + +EXAMPLE_DIR ?= ${ROOT_DIR}/tests/example + +CONFIG_FILES_DIR ?= $(ROOT_DIR)/Config_files +TEST_DIR ?= test + +KERNEL_INCLUDES ?= ${ROOT_DIR}/../../../FreeRTOS/Source/include + +# ${FREE_RTOS_INCLUDE_DIR}/FreeRTOS_IP.h -I ${FREE_RTOS_INCLUDE_DIR} + +INCLUDE_DIR ?= -I ${ROOT_DIR} -I ${ROOT_DIR}/tests/example -I $(CONFIG_FILES_DIR) -I ${CMOCK_INCLUDE_DIR} -I ${UNITY_INCLUDE_DIR} -I ${MOCKS_DIR} -I ${UNITY_FIXTURE_DIR} -I ${SRC_DIR} -I ${UNITY_MEMORY_DIR} + +MOCK_HEADERS ?= ${ROOT_DIR}/tests/example/some_value.h + +CODE_COVERAGE ?= -fprofile-arcs -ftest-coverage -fprofile-generate + +.PHONY: all clean directories mocks coverage run + +all: ${LIB_DIR}/libcmock.so ${LIB_DIR}/libunity.so directories mocks ${BIN_DIR}/${EXECUTABLE} + +directories: + mkdir -p ${BUILD_DIR} + mkdir -p ${MOCKS_DIR} + mkdir -p ${LIB_DIR} + mkdir -p ${BIN_DIR} + mkdir -p ${GEN_DIR} + +mocks: directories + cd ${BUILD_DIR} && ruby ${CMOCK_LIB_DIR}/cmock.rb -o${CONFIGURATION_DIR}/project.yml ${MOCK_HEADERS} + @echo "\n" + +${LIB_DIR}/libcmock.so: ${CMOCK_SRC_DIR}/cmock.c ${CMOCK_SRC_DIR}/cmock.h Makefile ${LIB_DIR}/libunity.so + ${CC} -o $@ -shared -fPIC $< ${INCLUDE_DIR} + @echo "\n" + +${LIB_DIR}/libunity.so: ${UNITY_SRC_DIR}/unity.c ${CMOCK_SRC_DIR}/cmock.h Makefile directories + ${CC} -o $@ -shared -fPIC $< -I ${UNITY_INCLUDE_DIR} + @echo "\n" + +#============================================================================================= +#============== LIST ALL THE HEADERS YOU WANT TO MOCK IN SIMILAR MANNER ===================== +${LIB_DIR}/mock_some_value.o: ${MOCKS_DIR}/mock_some_value.c mocks Makefile + ${CC} -c $< -o $@ ${INCLUDE_DIR} -fPIC + +COMMON_OBJECTS ?= ${LIB_DIR}/mock_some_value.o + + +#============================================================================================= +#======================== LIST ALL THE TEST SOURCE FILES HERE ================================ +TEST_FILES ?= ${EXAMPLE_DIR}/hello_world_test.c + +#============================================================================================= +#===================== LIST ALL THE SOURCE FILES UNDER TEST HERE ============================= +SOURCE_FILES ?= ${EXAMPLE_DIR}/hello_world.c +#--------------------------------------------------------------------------------------------- +#============================================================================================= + + +${LIB_DIR}/libcommon.so: ${COMMON_OBJECTS} + ${CC} -o $@ -shared -fPIC $+ ${INCLUDE_DIR} ${CODE_COVERAGE} -lgcov + + +${GEN_DIR}/${EXECUTABLE}_test_runner.c: mocks Makefile ${LIB_DIR}/libunity.so ${LIB_DIR}/libcmock.so + ruby ${UNITY_BIN_DIR}/generate_test_runner.rb ${CONFIGURATION_DIR}/project.yml ${ROOT_DIR}/tests/example/hello_world_test.c $@ + @echo "\n" + + +${BIN_DIR}/${EXECUTABLE}: ${GEN_DIR}/${EXECUTABLE}_test_runner.c ${TEST_FILES} ${SOURCE_FILES} ${LIB_DIR}/libcommon.so + ${CC} --coverage -o $@ $+ ${INCLUDE_DIR} -L ${LIB_DIR} -Wl,-rpath,${LIB_DIR} -lunity -lcmock -lcommon + @echo "\n" + +clean: + @rm -rf build + @rm -f *.gcda *.gcno + @echo "Cleaned...\n" + +run: ${BIN_DIR}/${EXECUTABLE} + ${BIN_DIR}/${EXECUTABLE} + +coverage: run + lcov --base-directory . --directory . -c --rc lcov_branch_coverage=1 --rc genhtml_branch_coverage=1 -o build/cmock_test.info + genhtml build/cmock_test.info --branch-coverage --output-directory build/coverage_html + |