Private
Public Access
2
0
Files
mraa/tests/unit/CMakeLists.txt

58 lines
2.6 KiB
CMake
Raw Normal View History

# Use the IN_LIST operator if available (for gtest)
if(POLICY CMP0057)
cmake_policy(SET CMP0057 NEW)
endif()
# For now, Google Test is NOT required */
find_package(GTest)
# If not found, print a status message and return
if(NOT GTEST_FOUND)
message(STATUS "Install Google Test to enable additional unit testing")
return ()
endif()
# Unit tests - C common header methods
add_executable(test_unit_common_h api/api_common_h_unit.cxx)
target_link_libraries(test_unit_common_h ${GTEST_BOTH_LIBRARIES} mraa)
target_include_directories(test_unit_common_h
PRIVATE "${CMAKE_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/api" "${CMAKE_SOURCE_DIR}/api/mraa")
gtest_add_tests(test_unit_common_h "" api/api_common_h_unit.cxx)
list(APPEND GTEST_UNIT_TEST_TARGETS test_unit_common_h)
# Unit tests - C++ common header methods
add_executable(test_unit_common_hpp api/api_common_hpp_unit.cxx)
target_link_libraries(test_unit_common_hpp ${GTEST_BOTH_LIBRARIES} mraa)
target_include_directories(test_unit_common_hpp PRIVATE "${CMAKE_SOURCE_DIR}/api")
gtest_add_tests(test_unit_common_hpp "" api/api_common_hpp_unit.cxx)
list(APPEND GTEST_UNIT_TEST_TARGETS test_unit_common_hpp)
if (FTDI4222 AND USBPLAT)
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
# Unit tests - Test platform extenders (as much as possible)
add_executable(test_unit_ftdi4222 platform_extender/platform_extender.cxx)
target_link_libraries(test_unit_ftdi4222 ${GTEST_BOTH_LIBRARIES} mraa-platform-ft4222 dl)
target_include_directories(test_unit_ftdi4222 PRIVATE "${PROJECT_SOURCE_DIR}/api"
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
"${PROJECT_SOURCE_DIR}/api/mraa"
"${PROJECT_SOURCE_DIR}/include")
gtest_add_tests(test_unit_ftdi4222 "" platform_extender/platform_extender.cxx)
list(APPEND GTEST_UNIT_TEST_TARGETS test_unit_ftdi4222)
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
endif ()
# Unit tests - test C initio header methods on MOCK platform only
if (DETECTED_ARCH STREQUAL "MOCK")
add_executable(test_unit_ioinit_h api/mraa_initio_h_unit.cxx)
target_link_libraries(test_unit_ioinit_h ${GTEST_BOTH_LIBRARIES} mraa)
target_include_directories(test_unit_ioinit_h PRIVATE "${CMAKE_SOURCE_DIR}/api")
gtest_add_tests(test_unit_ioinit_h "" api/mraa_initio_h_unit.cxx)
list(APPEND GTEST_UNIT_TEST_TARGETS test_unit_ioinit_h)
add_executable(test_unit_ioinit_hpp api/mraa_initio_hpp_unit.cxx)
target_link_libraries(test_unit_ioinit_hpp ${GTEST_BOTH_LIBRARIES} mraa)
target_include_directories(test_unit_ioinit_hpp PRIVATE "${CMAKE_SOURCE_DIR}/api")
gtest_add_tests(test_unit_ioinit_hpp "" api/mraa_initio_hpp_unit.cxx)
list(APPEND GTEST_UNIT_TEST_TARGETS test_unit_ioinit_hpp)
endif()
# Add a target for all unit tests
add_custom_target(test_unit_all ALL DEPENDS ${GTEST_UNIT_TEST_TARGETS})