![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
test
Diff: aws-iot/Makefile
- Revision:
- 0:cd5404401c2f
diff -r 000000000000 -r cd5404401c2f aws-iot/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/aws-iot/Makefile Wed Apr 12 14:07:09 2017 +0200 @@ -0,0 +1,131 @@ +#This target is to ensure accidental execution of Makefile as a bash script will not execute commands like rm in unexpected directories and exit gracefully. +.prevent_execution: + exit 0 + +#Set this to @ to keep the makefile quiet +ifndef SILENCE + SILENCE = @ +endif + +CC = gcc +RM = rm + +DEBUG = + +#--- Inputs ----# +COMPONENT_NAME = IotSdkC + +ALL_TARGETS := build-cpputest +ALL_TARGETS_CLEAN := + +CPPUTEST_USE_EXTENSIONS = Y +CPP_PLATFORM = Gcc +CPPUTEST_CFLAGS += -std=gnu99 +CPPUTEST_LDFLAGS += -lpthread +CPPUTEST_CFLAGS += -D__USE_BSD +CPPUTEST_USE_GCOV = Y + +#IoT client directory +IOT_CLIENT_DIR = . + +APP_DIR = $(IOT_CLIENT_DIR)/tests/unit +APP_NAME = aws_iot_sdk_unit_tests +APP_SRC_FILES = $(shell find $(APP_DIR)/src -name '*.cpp') +APP_SRC_FILES = $(shell find $(APP_DIR)/src -name '*.c') +APP_INCLUDE_DIRS = -I $(APP_DIR)/include + +CPPUTEST_DIR = $(IOT_CLIENT_DIR)/external_libs/CppUTest + +# Provide paths for CppUTest to run Unit Tests otherwise build will fail +ifndef CPPUTEST_INCLUDE + CPPUTEST_INCLUDE = $(CPPUTEST_DIR)/include +endif + +ifndef CPPUTEST_BUILD_LIB + CPPUTEST_BUILD_LIB = $(CPPUTEST_DIR) +endif + +CPPUTEST_LDFLAGS += -ldl $(CPPUTEST_BUILD_LIB)/libCppUTest.a + +PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux + +#MbedTLS directory +TEMP_MBEDTLS_SRC_DIR = $(APP_DIR)/tls_mock +TLS_LIB_DIR = $(TEMP_MBEDTLS_SRC_DIR) +TLS_INCLUDE_DIR = -I $(TEMP_MBEDTLS_SRC_DIR) + +# Logging level control +LOG_FLAGS += -DENABLE_IOT_DEBUG +#LOG_FLAGS += -DENABLE_IOT_TRACE +LOG_FLAGS += -DENABLE_IOT_INFO +LOG_FLAGS += -DENABLE_IOT_WARN +LOG_FLAGS += -DENABLE_IOT_ERROR +COMPILER_FLAGS += $(LOG_FLAGS) + +EXTERNAL_LIBS += -L$(CPPUTEST_BUILD_LIB) + +#IoT client directory +PLATFORM_COMMON_DIR = $(PLATFORM_DIR)/common + +IOT_INCLUDE_DIRS = -I $(PLATFORM_COMMON_DIR) +IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/include +IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn + +IOT_SRC_FILES += $(shell find $(PLATFORM_COMMON_DIR)/ -name '*.c') +IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/src/ -name '*.c') +IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/external_libs/jsmn/ -name '*.c') + +#Aggregate all include and src directories +INCLUDE_DIRS += $(IOT_INCLUDE_DIRS) +INCLUDE_DIRS += $(APP_INCLUDE_DIRS) +INCLUDE_DIRS += $(TLS_INCLUDE_DIR) +INCLUDE_DIRS += $(CPPUTEST_INCLUDE) + +TEST_SRC_DIRS = $(APP_DIR)/src + +SRC_FILES += $(APP_SRC_FILES) +SRC_FILES += $(IOT_SRC_FILES) + +COMPILER_FLAGS += -g +COMPILER_FLAGS += $(LOG_FLAGS) +PRE_MAKE_CMDS = cd $(CPPUTEST_DIR) && +PRE_MAKE_CMDS += cmake CMakeLists.txt && +PRE_MAKE_CMDS += make && +PRE_MAKE_CMDS += cd - && +PRE_MAKE_CMDS += pwd && +PRE_MAKE_CMDS += cp -f $(CPPUTEST_DIR)/src/CppUTest/libCppUTest.a $(CPPUTEST_DIR)/libCppUTest.a && +PRE_MAKE_CMDS += cp -f $(CPPUTEST_DIR)/src/CppUTestExt/libCppUTestExt.a $(CPPUTEST_DIR)/libCppUTestExt.a + +# Using TLS Mock for running Unit Tests +MOCKS_SRC += $(APP_DIR)/tls_mock/aws_iot_tests_unit_mock_tls_params.c +MOCKS_SRC += $(APP_DIR)/tls_mock/aws_iot_tests_unit_mock_tls.c + +ISYSTEM_HEADERS += $(IOT_ISYSTEM_HEADERS) +CPPUTEST_CPPFLAGS += $(ISYSTEM_HEADERS) +CPPUTEST_CPPFLAGS += $(LOG_FLAGS) + +LCOV_EXCLUDE_PATTERN = "tests/unit/*" +LCOV_EXCLUDE_PATTERN += "tests/integration/*" +LCOV_EXCLUDE_PATTERN += "external_libs/*" + +#use this section for running a specific group of tests, comment this to run all +#ONLY FOR TESTING PURPOSE +#COMMAND_LINE_ARGUMENTS += -g CommonTests +#COMMAND_LINE_ARGUMENTS += -v + +build-cpputest: + $(PRE_MAKE_CMDS) + +include CppUTestMakefileWorker.mk + +.PHONY: run-unit-tests +run-unit-tests: $(ALL_TARGETS) + @echo $(ALL_TARGETS) + +.PHONY: clean +clean: + $(MAKE) -C $(CPPUTEST_DIR) clean + $(RM) -rf build_output + $(RM) -rf gcov + $(RM) -rf objs + $(RM) -rf testLibs \ No newline at end of file