summaryrefslogtreecommitdiff
path: root/FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Unit/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Unit/Makefile')
-rw-r--r--FreeRTOS-Plus/Test/FreeRTOS-Plus-TCP/Unit/Makefile110
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
+