mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-10-13 17:49:25 +00:00
added cmocka version
This commit is contained in:
1 parent
3da2d5e046
commit
a2758b2183
12 files changed
+285
No files matched your search
@@ -0,0 +1,44 @@
|
||||
set(TEST_NAME test-cmocka)
|
||||
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(
|
||||
cmocka
|
||||
GIT_REPOSITORY https://git.cryptomilk.org/projects/cmocka.git
|
||||
GIT_TAG cmocka-1.1.5
|
||||
GIT_SHALLOW 1
|
||||
)
|
||||
|
||||
set(WITH_STATIC_LIB ON CACHE BOOL "CMocka: Build with a static library" FORCE)
|
||||
set(WITH_CMOCKERY_SUPPORT OFF CACHE BOOL "CMocka: Install a cmockery header" FORCE)
|
||||
set(WITH_EXAMPLES OFF CACHE BOOL "CMocka: Build examples" FORCE)
|
||||
set(UNIT_TESTING OFF CACHE BOOL "CMocka: Build with unit testing" FORCE)
|
||||
set(PICKY_DEVELOPER OFF CACHE BOOL "CMocka: Build with picky developer flags" FORCE)
|
||||
|
||||
FetchContent_MakeAvailable(cmocka)
|
||||
|
||||
function(ADD_CMOCKA_TEST_ENVIRONMENT _TARGET_NAME)
|
||||
if (WIN32 OR CYGWIN OR MINGW OR MSVC)
|
||||
file(TO_NATIVE_PATH "${cmocka-library_BINARY_DIR}" CMOCKA_DLL_PATH)
|
||||
|
||||
if (TARGET_SYSTEM_EMULATOR)
|
||||
set(DLL_PATH_ENV "WINEPATH=${CMOCKA_DLL_PATH};$ENV{WINEPATH}")
|
||||
else ()
|
||||
set(DLL_PATH_ENV "PATH=${CMOCKA_DLL_PATH}\\${CMAKE_BUILD_TYPE};$ENV{PATH}")
|
||||
endif ()
|
||||
#
|
||||
# IMPORTANT NOTE: The set_tests_properties(), below, internally
|
||||
# stores its name/value pairs with a semicolon delimiter.
|
||||
# because of this we must protect the semicolons in the path
|
||||
#
|
||||
string(REPLACE ";" "\\;" DLL_PATH_ENV "${DLL_PATH_ENV}")
|
||||
|
||||
set_tests_properties(${_TARGET_NAME}
|
||||
PROPERTIES
|
||||
ENVIRONMENT
|
||||
"${DLL_PATH_ENV}")
|
||||
endif ()
|
||||
endfunction()
|
||||
|
||||
|
||||
add_subdirectory(sample_test)
|
||||
@@ -0,0 +1,6 @@
|
||||
project(sample-cmocka C)
|
||||
|
||||
add_cmocka_test(sample_test
|
||||
SOURCES sample_test.c
|
||||
LINK_LIBRARIES src cmocka-static)
|
||||
add_cmocka_test_environment(add_test)
|
||||
@@ -0,0 +1,24 @@
|
||||
#include <stdarg.h>
|
||||
#include <setjmp.h>
|
||||
#include <stddef.h>
|
||||
#include "cmocka.h"
|
||||
|
||||
#include "GildedRose.h"
|
||||
|
||||
static void test_rose(void **state)
|
||||
{
|
||||
Item items[1];
|
||||
init_item(items, "foo", 0, 0);
|
||||
update_quality(items, 1);
|
||||
|
||||
assert_string_equal("fixme", items[0].name);
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
const struct CMUnitTest tests[] =
|
||||
{
|
||||
cmocka_unit_test(test_rose),
|
||||
};
|
||||
|
||||
return cmocka_run_group_tests(tests, NULL, NULL);
|
||||
}
|
||||
Reference in new issue
Block a user