diff --git a/mocks/MockRegEdit/CMakeLists.txt b/mocks/MockRegEdit/CMakeLists.txt index a0a9cb6..17b06c1 100644 --- a/mocks/MockRegEdit/CMakeLists.txt +++ b/mocks/MockRegEdit/CMakeLists.txt @@ -5,3 +5,8 @@ add_library(MockRegEdit STATIC target_include_directories(MockRegEdit PUBLIC ${CMAKE_CURRENT_LIST_DIR} ) + +target_link_libraries(MockRegEdit + ${CPPUTEST_LIBRARIES}/libCppUTest.a + ${CPPUTEST_LIBRARIES}/libCppUTestExt.a +) diff --git a/mocks/MockRegEdit/MockRegEdit.c b/mocks/MockRegEdit/MockRegEdit.c index c9b71c4..0841eff 100644 --- a/mocks/MockRegEdit/MockRegEdit.c +++ b/mocks/MockRegEdit/MockRegEdit.c @@ -71,3 +71,16 @@ void RegEdit_SetNum(void *reg, uint8_t num) ->withPointerParameters("reg", reg) ->withUnsignedIntParameters("num", num); } + + +uint8_t RegEdit_ReadReg(void *reg) +{ + uint8_t *reg_ptr = (uint8_t) reg; + uint8_t reg_val = *reg_ptr; + + mock_c()->actualCall("RegEdit_ReadReg") + ->withPointerParameters("reg", reg) + ->returnUnsignedIntValueOrDefault(reg_val); + + return reg_val; +} diff --git a/mocks/MockRegEdit/MockRegEdit.h b/mocks/MockRegEdit/MockRegEdit.h index e994352..f725c98 100644 --- a/mocks/MockRegEdit/MockRegEdit.h +++ b/mocks/MockRegEdit/MockRegEdit.h @@ -25,4 +25,6 @@ void RegEdit_AND_Num(void *reg, uint8_t num); void RegEdit_SetNum(void *reg, uint8_t num); +uint8_t RegEdit_ReadReg(void *reg); + #endif //MOCKREGEDIT_H diff --git a/tests/MockRegEdit/test_MockRegEdit.cpp b/tests/MockRegEdit/test_MockRegEdit.cpp index edffb8b..39a8e6d 100644 --- a/tests/MockRegEdit/test_MockRegEdit.cpp +++ b/tests/MockRegEdit/test_MockRegEdit.cpp @@ -151,3 +151,18 @@ TEST(test_MockRegEdit, RegEdit_SetNumPasses) mock().checkExpectations(); } + +TEST(test_MockRegEdit, RegEdit_ReadRegPasses) +{ + uint8_t a = 0xFF; + uint8_t *b = &a; + + mock().expectOneCall("RegEdit_ReadReg") + .withPointerParameter("reg", b) + .andReturnValue(0xFF); + uint8_t reg_val = RegEdit_ReadReg(b); + + LONGS_EQUAL(0xFF, reg_val); + + mock().checkExpectations(); +}