Add Kernel Unit Tests Environment (#494)
* Implement Kernel Unit Test Framework with CMock * Add Readme.md to unit tests * Add Posix build checker to git actions * Add Ruby requirement * Fix file header checks * Fix header checks * Add color output to test runspull/498/head
parent
a78cb45d12
commit
9b9011917a
@ -1,74 +0,0 @@
|
||||
cmake_minimum_required ( VERSION 3.13.0 )
|
||||
project ( "FreeRTOS Unit Tests"
|
||||
VERSION 1.0.0
|
||||
LANGUAGES C )
|
||||
|
||||
# Allow the project to be organized into folders.
|
||||
set_property( GLOBAL PROPERTY USE_FOLDERS ON )
|
||||
|
||||
# Use C90.
|
||||
set( CMAKE_C_STANDARD 90 )
|
||||
set( CMAKE_C_STANDARD_REQUIRED ON )
|
||||
|
||||
# Do not allow in-source build.
|
||||
if( ${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR} )
|
||||
message( FATAL_ERROR "In-source build is not allowed. Please build in a separate directory, such as ${PROJECT_SOURCE_DIR}/build." )
|
||||
endif()
|
||||
|
||||
# Set global path variables.
|
||||
get_filename_component(__MODULE_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
|
||||
set(MODULE_ROOT_DIR ${__MODULE_ROOT_DIR} CACHE INTERNAL "FreeRTOS root.")
|
||||
|
||||
# Configure options to always show in CMake GUI.
|
||||
option( BUILD_CLONE_SUBMODULES
|
||||
"Set this to ON to automatically clone any required Git submodules. When OFF, submodules must be manually cloned."
|
||||
ON )
|
||||
|
||||
# Set output directories.
|
||||
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
|
||||
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
|
||||
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
|
||||
|
||||
# Define a CMock resource path.
|
||||
set( CMOCK_DIR ${MODULE_ROOT_DIR}/FreeRTOS/Test/CMock/CMock CACHE INTERNAL "CMock library source directory." )
|
||||
|
||||
# Include CMock build configuration.
|
||||
include( cmock_build.cmake )
|
||||
|
||||
# Check if the CMock source directory exists, and if not present, clone the submodule
|
||||
# if BUILD_CLONE_SUBMODULES configuration is enabled.
|
||||
if( NOT EXISTS ${CMOCK_DIR}/src )
|
||||
# Attempt to clone CMock.
|
||||
if( ${BUILD_CLONE_SUBMODULES} )
|
||||
clone_cmock()
|
||||
else()
|
||||
message( FATAL_ERROR "The required submodule CMock does not exist. Either clone it manually, or set BUILD_CLONE_SUBMODULES to 1 to automatically clone it during build." )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Add unit test and coverage configuration.
|
||||
|
||||
# Use CTest utility for managing test runs. This has to be added BEFORE
|
||||
# defining test targets with add_test()
|
||||
enable_testing()
|
||||
|
||||
# Add build targets for CMock and Unit, required for unit testing.
|
||||
add_cmock_targets()
|
||||
|
||||
# Add function to enable CMock based tests and coverage.
|
||||
include( ${MODULE_ROOT_DIR}/tools/cmock/create_test.cmake )
|
||||
|
||||
# Include build configuration for unit tests.
|
||||
include( queue/queue.cmake )
|
||||
|
||||
# List of unit tests
|
||||
set( unit_test_list
|
||||
queue_utest
|
||||
)
|
||||
|
||||
# Add a target for running coverage on tests.
|
||||
add_custom_target( coverage
|
||||
COMMAND ${CMAKE_COMMAND} -P ${MODULE_ROOT_DIR}/tools/cmock/coverage.cmake
|
||||
DEPENDS cmock unity ${unit_test_list}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
)
|
@ -0,0 +1,70 @@
|
||||
# Change to match installed location
|
||||
export CC=/usr/local/bin/gcc
|
||||
export LD=/usr/local/bin/ld
|
||||
# Add units here when adding a new unit test directory with the same name
|
||||
UNITS := queue
|
||||
|
||||
include makefile.in
|
||||
|
||||
.PHONY: all run doc clean directories $(UNITS) coverage
|
||||
|
||||
all: doc coverage
|
||||
execs: $(UNITS) directories
|
||||
|
||||
|
||||
$(UNITS): directories ${LIB_DIR}/libcmock.so ${LIB_DIR}/libunity.so
|
||||
$(MAKE) -C $@
|
||||
|
||||
doc: directories
|
||||
$(MAKE) -C doc all
|
||||
|
||||
directories:
|
||||
-mkdir $(BUILD_DIR)
|
||||
-mkdir $(GENERATED_DIR)
|
||||
-mkdir $(COVERAGE_DIR)
|
||||
-mkdir $(BIN_DIR)
|
||||
-mkdir $(DOC_DIR)
|
||||
-mkdir $(LIB_DIR)
|
||||
|
||||
clean:
|
||||
rm -rf build
|
||||
|
||||
help:
|
||||
@echo -e 'Usage: $$ make <unit>\n '
|
||||
@echo -e ' where <unit> is one of: $(UNITS) doc all run run_formatted run_col run_col_formatted coverage'
|
||||
|
||||
$(LIB_DIR)/libcmock.so : ${CMOCK_SRC_DIR}/cmock.c \
|
||||
${CMOCK_SRC_DIR}/cmock.h \
|
||||
${LIB_DIR}/libunity.so \
|
||||
Makefile
|
||||
${CC} -o $@ -shared -fPIC $< ${INCLUDE_DIR}
|
||||
|
||||
$(LIB_DIR)/libunity.so : ${UNITY_SRC_DIR}/unity.c \
|
||||
${CMOCK_SRC_DIR}/cmock.h \
|
||||
Makefile directories
|
||||
${CC} -o $@ -shared -fPIC $<
|
||||
|
||||
run : $(UNITS) directories
|
||||
for f in $(BIN_DIR)/*; do \
|
||||
$${f}; done
|
||||
|
||||
run_col : $(UNITS) directories
|
||||
for f in $(BIN_DIR)/*; do \
|
||||
ruby -r $(UNITY_BIN_DIR)/colour_reporter.rb -e "report('`$${f}`')"; done
|
||||
|
||||
run_formatted : $(UNITS) directories
|
||||
for f in $(BIN_DIR)/*; do \
|
||||
$${f} > $(BUILD_DIR)/output; \
|
||||
ruby $(UNITY_BIN_DIR)/parse_output.rb $(BUILD_DIR)/output ; \
|
||||
done
|
||||
|
||||
run_col_formatted : $(UNITS) directories
|
||||
for f in $(BIN_DIR)/*; do \
|
||||
$${f} > $(BUILD_DIR)/output; \
|
||||
ruby -r $(UNITY_BIN_DIR)/colour_reporter.rb -e "report('$$(ruby $(UNITY_BIN_DIR)/parse_output.rb $(BUILD_DIR)/output)')"; \
|
||||
done
|
||||
|
||||
coverage : run_col
|
||||
lcov --base-directory . --directory . -c --rc lcov_branch_coverage=1 --rc genhtml_branch_coverage=1 -o $(BUILD_DIR)/cmock_test.info
|
||||
genhtml $(BUILD_DIR)/cmock_test.info --branch-coverage --output-directory $(COVERAGE_DIR)
|
||||
|
@ -0,0 +1,54 @@
|
||||
# FreeRTOS Kernel Unit Tests
|
||||
|
||||
## Prerequisites as tested
|
||||
GCC
|
||||
```
|
||||
gcc: gcc (GCC) 9.2.0
|
||||
```
|
||||
LCOV
|
||||
```
|
||||
lcov: LCOV version 1.14-6-g40580cd
|
||||
```
|
||||
Make
|
||||
```
|
||||
GNU Make 3.82
|
||||
```
|
||||
Ruby
|
||||
```
|
||||
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
|
||||
```
|
||||
Doxygen (optional)
|
||||
```
|
||||
1.8.5
|
||||
```
|
||||
## How to run
|
||||
```
|
||||
$ make help
|
||||
Usage: $ make <unit>
|
||||
|
||||
where <unit> is one of: queue doc all run run_formatted run_col
|
||||
run_col_formatted coverage
|
||||
```
|
||||
Explanation
|
||||
```
|
||||
$ make queue
|
||||
```
|
||||
Would build the kernel queue unit tests and put the executable in build/bin
|
||||
|
||||
```
|
||||
$ make doc
|
||||
```
|
||||
Would generate the doxygen documentation in build/doc
|
||||
|
||||
```
|
||||
$ make run | run_formatted | run_col | run_col_formatted
|
||||
```
|
||||
Would build all unit tests and runs them one after the other with different
|
||||
options between normal and formatted and colored for easily spotting errors
|
||||
|
||||
```
|
||||
$ make coverage
|
||||
```
|
||||
Would build all unit tests, runs them one after the other, then generates html code
|
||||
coverage and places them in build/coverage with initial file index.html
|
||||
|
@ -1,59 +0,0 @@
|
||||
# Macro utility to clone the CMock submodule.
|
||||
macro( clone_cmock )
|
||||
find_package( Git REQUIRED )
|
||||
message( "Cloning submodule CMock." )
|
||||
execute_process( COMMAND rm -rf ${CMOCK_DIR}
|
||||
COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive ${MODULE_ROOT_DIR}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
RESULT_VARIABLE CMOCK_CLONE_RESULT )
|
||||
|
||||
if( NOT ${CMOCK_CLONE_RESULT} STREQUAL "0" )
|
||||
message( FATAL_ERROR "Failed to clone CMock submodule." )
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Macro utility to add library targets for Unity and CMock to build configuration.
|
||||
macro( add_cmock_targets )
|
||||
# Build Configuration for CMock and Unity libraries.
|
||||
list( APPEND CMOCK_INCLUDE_DIRS
|
||||
"${CMOCK_DIR}/vendor/unity/src/"
|
||||
"${CMOCK_DIR}/vendor/unity/extras/fixture/src"
|
||||
"${CMOCK_DIR}/vendor/unity/extras/memory/src"
|
||||
"${CMOCK_DIR}/src"
|
||||
)
|
||||
|
||||
add_library(cmock STATIC
|
||||
"${CMOCK_DIR}/src/cmock.c"
|
||||
)
|
||||
|
||||
set_target_properties(cmock PROPERTIES
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
COMPILE_FLAGS "-Og"
|
||||
)
|
||||
|
||||
target_include_directories(cmock PUBLIC
|
||||
${CMOCK_DIR}/src
|
||||
${CMOCK_DIR}/vendor/unity/src/
|
||||
${CMOCK_DIR}/examples
|
||||
${CMOCK_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
add_library(unity STATIC
|
||||
"${CMOCK_DIR}/vendor/unity/src/unity.c"
|
||||
"${CMOCK_DIR}/vendor/unity/extras/fixture/src/unity_fixture.c"
|
||||
"${CMOCK_DIR}/vendor/unity/extras/memory/src/unity_memory.c"
|
||||
)
|
||||
|
||||
set_target_properties(unity PROPERTIES
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_include_directories(unity PUBLIC
|
||||
${CMOCK_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_link_libraries(cmock unity)
|
||||
endmacro()
|
||||
|
@ -0,0 +1,7 @@
|
||||
DOXY_ARGS := "INPUT=../ \n FILE_PATTERNS=*.c *.h\n RECURSIVE=YES\n"
|
||||
DOXY_ARGS += "EXCLUDE=../CMock/ ../config/ ../scripts/ ../build/\n"
|
||||
DOXY_ARGS += "PROJECT_NAME=FreeRTOS Unit Tests\nGENERATE_LATEX=NO\n"
|
||||
DOXY_ARGS += "OUTPUT_DIRECTORY=$(DOC_DIR)"
|
||||
|
||||
all:
|
||||
echo -e $(DOXY_ARGS) | doxygen -
|
@ -0,0 +1,51 @@
|
||||
# Various directory locations
|
||||
|
||||
UT_ROOT_DIR_REL :=.
|
||||
UT_ROOT_DIR := $(abspath $(UT_ROOT_DIR_REL))
|
||||
|
||||
BUILD_DIR := $(UT_ROOT_DIR)/build
|
||||
DOC_DIR := $(BUILD_DIR)/doc
|
||||
COVERAGE_DIR := $(BUILD_DIR)/coverage
|
||||
BIN_DIR := $(BUILD_DIR)/bin
|
||||
GENERATED_DIR := $(BUILD_DIR)/generated
|
||||
LIB_DIR := $(BUILD_DIR)/lib
|
||||
|
||||
|
||||
FREERTOS_DIR_REL := ../../../FreeRTOS
|
||||
FREERTOS_DIR := $(abspath $(FREERTOS_DIR_REL))
|
||||
|
||||
KERNEL_DIR_REL := ../../../FreeRTOS/Source
|
||||
KERNEL_DIR := $(abspath $(KERNEL_DIR_REL))
|
||||
|
||||
CMOCK_DIR := $(UT_ROOT_DIR)/CMock
|
||||
CMOCK_SRC_DIR := $(CMOCK_DIR)/src
|
||||
UNITY_DIR := $(CMOCK_DIR)/vendor/unity
|
||||
UNITY_SRC_DIR := $(UNITY_DIR)/src
|
||||
UNITY_INC_DIR := $(UNITY_DIR)/src
|
||||
UNITY_BIN_DIR := $(UNITY_DIR)/auto
|
||||
|
||||
CMOCK_EXEC_DIR := $(CMOCK_DIR)/lib
|
||||
|
||||
# Include directory location
|
||||
INCLUDE_DIR := -I$(KERNEL_DIR)/include -I. -I$(UT_ROOT_DIR)/config
|
||||
INCLUDE_DIR += -I$(UNITY_INC_DIR)
|
||||
INCLUDE_DIR += -I$(CMOCK_SRC_DIR)
|
||||
|
||||
CPPFLAGS :=
|
||||
CFLAGS := $(INCLUDE_DIR) -O0 -ggdb -pthread --std=c99
|
||||
LDFLAGS := -L$(LIB_DIR) -lunity -lcmock -Wl,-rpath,$(LIB_DIR) -pthread -lgcov
|
||||
|
||||
export BUILD_DIR
|
||||
export DOC_DIR
|
||||
export GENERATED_DIR
|
||||
export COVERAGE_DIR
|
||||
export BIN_DIR
|
||||
export UNITS
|
||||
export CFLAGS
|
||||
export LDFLAGS
|
||||
export CPPFLAGS
|
||||
export CMOCK_EXEC_DIR
|
||||
export KERNEL_DIR
|
||||
export UNITY_BIN_DIR
|
||||
export LIB_DIR
|
||||
|
@ -0,0 +1,63 @@
|
||||
# Change according to what your unit test directory is.
|
||||
# For example if testing queue.c your directory should be called queue
|
||||
# and the project name should be queue
|
||||
# if testing list.c your directory should be called list
|
||||
# and the project name should be list
|
||||
PROJECT := queue
|
||||
|
||||
# List the dependency files you wish to mock
|
||||
MOCK_FILES_FP := $(KERNEL_DIR)/include/task.h
|
||||
MOCK_FILES_FP += $(KERNEL_DIR)/include/list.h
|
||||
|
||||
# List the options the compilation would need
|
||||
CPPFLAGS += -DportUSING_MPU_WRAPPERS=0
|
||||
|
||||
# Try not to edit beyond this line
|
||||
MOCK_FILES := $(notdir $(MOCK_FILES_FP))
|
||||
MOCK_OBJ := $(addprefix mock_,$(MOCK_FILES:.h=.o))
|
||||
MOCK_SRC := $(addprefix mock_,$(MOCK_FILES:.h=.c))
|
||||
EXEC := $(PROJECT)_utest
|
||||
PROJECT_DIR := $(abspath .)
|
||||
SCRATCH_DIR := $(GENERATED_DIR)/$(PROJECT)
|
||||
PROJ_LIB_DIR := $(SCRATCH_DIR)/lib
|
||||
MOCK_OBJ_LIST := $(addprefix $(PROJ_LIB_DIR)/,$(MOCK_OBJ))
|
||||
MOCKS_DIR := $(SCRATCH_DIR)/mocks
|
||||
MOCK_SRC_LIST := $(addprefix $(MOCKS_DIR)/,$(MOCK_SRC))
|
||||
CFLAGS += -I$(MOCKS_DIR)
|
||||
COVERAGE_OPTS := -fprofile-arcs -ftest-coverage -fprofile-generate
|
||||
|
||||
$(MOCKS_DIR)/mock_%.c : directories Makefile
|
||||
cd $(SCRATCH_DIR) && \
|
||||
ruby $(CMOCK_EXEC_DIR)/cmock.rb -o$(PROJECT_DIR)/$(PROJECT).yml \
|
||||
$(MOCK_FILES_FP)
|
||||
|
||||
$(PROJ_LIB_DIR)/mock_%.o : $(MOCKS_DIR)/mock_%.c
|
||||
$(CC) -c $< -fPIC $(CFLAGS) -o $@
|
||||
|
||||
$(BIN_DIR)/$(EXEC) : $(SCRATCH_DIR)/test_runner.o \
|
||||
$(SCRATCH_DIR)/$(PROJECT).o \
|
||||
$(SCRATCH_DIR)/$(PROJECT)_utest.o \
|
||||
$(MOCK_OBJ_LIST) | Makefile
|
||||
$(CC) $+ $(LDFLAGS) -o $@
|
||||
|
||||
$(SCRATCH_DIR)/test_runner.o : $(SCRATCH_DIR)/test_runner.c
|
||||
$(CC) -c $< $(CPPFLAGS) $(CFLAGS) -o $@
|
||||
|
||||
$(SCRATCH_DIR)/$(PROJECT)_utest.o : $(PROJECT_DIR)/$(PROJECT)_utest.c
|
||||
$(CC) -c $< $(CPPFLAGS) $(CFLAGS) -o $@
|
||||
|
||||
$(SCRATCH_DIR)/$(PROJECT).o : $(KERNEL_DIR)/$(PROJECT).c
|
||||
$(CC) -c $< $(CPPFLAGS) $(CFLAGS) $(COVERAGE_OPTS) -o $@
|
||||
|
||||
$(SCRATCH_DIR)/test_runner.c : Makefile $(MOCK_OBJ_LIST)
|
||||
ruby $(UNITY_BIN_DIR)/generate_test_runner.rb $(EXEC).c \
|
||||
$(PROJECT_DIR)/$(PROJECT).yml $@
|
||||
|
||||
.PHONY: directories
|
||||
directories :
|
||||
-mkdir -p $(SCRATCH_DIR)
|
||||
-mkdir -p $(MOCKS_DIR)
|
||||
-mkdir -p $(PROJ_LIB_DIR)
|
||||
|
||||
# prevent deletion by chain of implicit rules
|
||||
NO_DELETE: $(MOCK_SRC_LIST)
|
@ -1,118 +0,0 @@
|
||||
# ============================= Queue unit tests ===========================
|
||||
project( "queue" )
|
||||
set(project_name "queue")
|
||||
set(utest_name "${project_name}_utest")
|
||||
set(utest_source "${project_name}_utest.c")
|
||||
set(utest_yml "${project_name}.yml")
|
||||
# ===================== Create your mock here (edit) ========================
|
||||
|
||||
# clear the original variables
|
||||
set( mock_list "" )
|
||||
set( mock_include_list "" )
|
||||
set( mock_define_list "" )
|
||||
set( real_source_files "" )
|
||||
set( real_include_directories "" )
|
||||
set( test_include_directories "" )
|
||||
set( utest_link_list "" )
|
||||
set( utest_dep_list "" )
|
||||
set(mock_dir "wrapper_mocks")
|
||||
|
||||
|
||||
# list of files to preprocess
|
||||
list(APPEND preprocessed_mock_list
|
||||
"${MODULE_ROOT_DIR}/FreeRTOS/Source/include/task.h"
|
||||
#"${MODULE_ROOT_DIR}/FreeRTOS/Source/include/portable.h"
|
||||
)
|
||||
|
||||
set(preprocess_commands "-I ${MODULE_ROOT_DIR}/FreeRTOS/Source/Include -I ${MODULE_ROOT_DIR}/FreeRTOS/Test/CMock/config" )
|
||||
|
||||
|
||||
# list the files to mock here
|
||||
list(APPEND mock_list
|
||||
"${MODULE_ROOT_DIR}/FreeRTOS/Source/include/task.h"
|
||||
"${MODULE_ROOT_DIR}/FreeRTOS/Source/include/list.h"
|
||||
#"${MODULE_ROOT_DIR}/FreeRTOS/Source/include/portable.h"
|
||||
)
|
||||
|
||||
# list the directories your mocks need
|
||||
list(APPEND mock_include_list
|
||||
"config"
|
||||
"${MODULE_ROOT_DIR}/FreeRTOS/Source/include"
|
||||
#"${CMAKE_CURRENT_LIST_DIR}/${mock_dir}"
|
||||
)
|
||||
|
||||
#list the definitions of your mocks to control what to be included
|
||||
list(APPEND mock_define_list
|
||||
portUSING_MPU_WRAPPERS=0
|
||||
)
|
||||
|
||||
# ================= Create the library under test here (edit) ==================
|
||||
|
||||
# list the files you would like to test here
|
||||
list(APPEND real_source_files
|
||||
"${MODULE_ROOT_DIR}/FreeRTOS/Source/queue.c"
|
||||
)
|
||||
|
||||
# list the directories the module under test includes
|
||||
list(APPEND real_include_directories
|
||||
"config"
|
||||
"${MODULE_ROOT_DIR}/FreeRTOS/Source/include"
|
||||
#"${CMAKE_CURRENT_BINARY_DIR}/${mock_dir}"
|
||||
)
|
||||
# ===================== Create UnitTest Code here (edit) =====================
|
||||
|
||||
# list the directories your test needs to include
|
||||
list(APPEND test_include_directories
|
||||
"config"
|
||||
"${MODULE_ROOT_DIR}/FreeRTOS/Source/include"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${mock_dir}"
|
||||
)
|
||||
# ============================= (end edit) ===================================
|
||||
|
||||
set(mock_name "${project_name}_mock")
|
||||
set(real_name "${project_name}_real")
|
||||
set(pre_mock_name "pre_${mock_name}")
|
||||
|
||||
create_mock_list("${mock_name}"
|
||||
"${mock_list}"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/${utest_yml}"
|
||||
"${mock_include_list}"
|
||||
"${mock_define_list}"
|
||||
"${mock_dir}"
|
||||
)
|
||||
|
||||
separate_arguments(unix_flags UNIX_COMMAND "${preprocess_commands}")
|
||||
|
||||
message(STATUS "Unix Flags: ${unix_flags}")
|
||||
|
||||
#preprocess_mock_list(${mock_name}
|
||||
# ${preprocessed_mock_list}
|
||||
# "${unix_flags}"
|
||||
# )
|
||||
|
||||
#add_dependencies(${mock_name} ${pre_mock_name} )
|
||||
|
||||
|
||||
create_real_library(${real_name}
|
||||
"${real_source_files}"
|
||||
"${real_include_directories}"
|
||||
"${mock_name}"
|
||||
)
|
||||
|
||||
list(APPEND utest_link_list
|
||||
-l${mock_name}
|
||||
lib${real_name}.a
|
||||
)
|
||||
|
||||
list(APPEND utest_dep_list
|
||||
${real_name}
|
||||
)
|
||||
|
||||
create_test(${utest_name}
|
||||
"${CMAKE_CURRENT_LIST_DIR}/${utest_source}"
|
||||
"${utest_link_list}"
|
||||
"${utest_dep_list}"
|
||||
"${test_include_directories}"
|
||||
"${CMAKE_CURRENT_LIST_DIR}/${utest_yml}"
|
||||
"${mock_dir}"
|
||||
)
|
@ -1,9 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Running tests..."
|
||||
SOURCE_DIR=FreeRTOS/Test/CMock
|
||||
BUILD_DIR=FreeRTOS/Test/CMock/build
|
||||
cmake -DBUILD_CLONE_SUBMODULES=0 -S ${SOURCE_DIR} -B ${BUILD_DIR} && make -C ${BUILD_DIR} && ${BUILD_DIR}/bin/tests/queue_utest
|
||||
TEST_RESULT=$?
|
||||
echo "Done"
|
||||
exit ${TEST_RESULT}
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Setting up test environment..."
|
||||
git -C FreeRTOS submodule update --init --recursive
|
||||
RC=$?
|
||||
echo "Done"
|
||||
exit $RC
|
Loading…
Reference in New Issue