Skip to content
Snippets Groups Projects
Select Git revision
  • f2f3582b16a9a8fe203fbbc1eb1601be40e3ac64
  • main default protected
  • addingScalability
  • Kernel_Module
  • Packaging
  • fixingProjectStructure
  • addingInterProcessCommunication
  • addingServiceFile
  • addingProcesses
9 results

cpu_temp

Blame
  • Testing.cmake 5.95 KiB
    #------------------------------------------------------------------------------
    # Project Phoenix
    #
    # Copyright (c) 2017 RWTH Aachen University, Germany,
    # Virtual Reality & Immersive Visualisation Group.
    #------------------------------------------------------------------------------
    #                                 License
    #
    # Licensed under the 3-Clause BSD License (the "License");
    # you may not use this file except in compliance with the License.
    # See the file LICENSE for the full text.
    # You may obtain a copy of the License at
    #
    #     https://opensource.org/licenses/BSD-3-Clause
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #------------------------------------------------------------------------------
    
    include(CTest)
    enable_testing()
    
    include(WarningLevels)
    
    conan_or_find_package(catch REQUIRED)
    conan_or_find_package(trompeloeil REQUIRED)
    
    set_property(GLOBAL PROPERTY USE_FOLDERS ON)
    
    set_property(GLOBAL PROPERTY ADDED_TESTS "")
    
    
    function(CONFIGURE_MSVC_USERFILE TARGET_NAME PATH_TO_ADD)
      file(TO_NATIVE_PATH "${PATH_TO_ADD}/Release" _DLL_PATH_RELEASE)
      file(TO_NATIVE_PATH "${PATH_TO_ADD}/Debug" _DLL_PATH_DEBUG)
      set(SOURCE_USER_FILE
        "${CMAKE_SOURCE_DIR}/cmake/VisualStudio2013.vcxproj.user.in")
      set(DESTINATION_USER_FILE
        "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.vcxproj.user")
      configure_file(${SOURCE_USER_FILE} ${DESTINATION_USER_FILE} @ONLY)
    endfunction()
    
    function(ADD_TEST_TARGET_INTERNAL_
        NAME SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES PATH_TO_ADD)
      add_executable(${NAME} ${SOURCES} ${HEADERS})
      target_include_directories(${NAME} PRIVATE ${INCLUDE_DIRECTORIES})
      target_link_libraries(${NAME} ${LINK_LIBRARIES})
      target_link_libraries(${NAME} ${CONAN_OR_CMAKE_catch})
       
      if(WIN32 AND MSVC)
        CONFIGURE_MSVC_USERFILE(${NAME} ${PATH_TO_ADD})
      endif()
    endfunction()
    
    function(ADD_TEST_CATCH_INTERNAL_ 
        NAME SOURCES HEADERS)
      
      add_test(NAME ${NAME} COMMAND ${NAME})
      if(NOT ${NAME} MATCHES "integration")
        set_tests_properties(${NAME} PROPERTIES TIMEOUT 8.0)
      else()
        set_tests_properties(${NAME} PROPERTIES TIMEOUT 120.0)
      endif()
      set_warning_levels_RWTH(${NAME})
    
      set_property(TARGET ${NAME} PROPERTY FOLDER "Tests")
      source_group("Source Files" FILES ${SOURCES} ${HEADERS})
      
      set_property(GLOBAL APPEND PROPERTY ADDED_TESTS "${NAME}")
      
      if(IS_BUILD_SERVER)
        target_compile_definitions(${NAME} PUBLIC -DIS_BUILD_SERVER)
      endif()
      
    endfunction()
    
    function(ADD_TEST_INTERNAL_ 
        NAME SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES PATH_TO_ADD)
      ADD_TEST_TARGET_INTERNAL_("${NAME}" "${SOURCES}" "${HEADERS}" "${INCLUDE_DIRECTORIES}" "${LINK_LIBRARIES}" "${PATH_TO_ADD}")
      ADD_TEST_CATCH_INTERNAL_("${NAME}" "${SOURCES}" "${HEADERS}")
    endfunction()
    
    
    
    
    function(CREATE_CATCH_MAIN_INTERNAL_
        NAME SOURCE INCLUDE_DIRECTORIES)
      add_library(${NAME} ${SOURCE})
      target_include_directories(${NAME} PRIVATE ${INCLUDE_DIRECTORIES})
      target_link_libraries(${NAME} ${CONAN_OR_CMAKE_catch} ${CONAN_OR_CMAKE_trompeloeil})
      set_property(TARGET ${NAME} PROPERTY FOLDER "Tests")
      source_group("Source Files" FILES ${SOURCE})
    endfunction()
    
    
    function(ADD_TEST_CATCH)
      # parse arguments
      set(options )
      set(oneValueArgs NAME CATCH_MAIN)
      set(multiValueArgs
        SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES PATH_TO_ADD)
      cmake_parse_arguments(ADD_TEST_CATCH
        "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
    
      create_catch_main_internal_("${ADD_TEST_CATCH_NAME}_catch_main"
        ${ADD_TEST_CATCH_CATCH_MAIN}
        ${ADD_TEST_CATCH_INCLUDE_DIRECTORIES}
      )
    
      # remove catch_main file from sources
      file(GLOB ADD_TEST_CATCH_CATCH_MAIN_ABSOLUTE ${ADD_TEST_CATCH_CATCH_MAIN})
      list(REMOVE_ITEM ADD_TEST_CATCH_SOURCES ${ADD_TEST_CATCH_CATCH_MAIN_ABSOLUTE})
    
      # add test for each test source file
      foreach(TEST_SOURCE_FILE ${ADD_TEST_CATCH_SOURCES})
        get_filename_component(TEST_NAME ${TEST_SOURCE_FILE} NAME_WE)
        ADD_TEST_INTERNAL_("${TEST_NAME}"
          "${TEST_SOURCE_FILE}"
          ""
          "${ADD_TEST_CATCH_INCLUDE_DIRECTORIES}"
          "${ADD_TEST_CATCH_LINK_LIBRARIES};${ADD_TEST_CATCH_NAME}_catch_main"
          "${ADD_TEST_CATCH_PATH_TO_ADD}"
        )
      endforeach()
    endfunction()
    
    macro(EXTRACT_UNIT_AND_INTEGRATION_TEST_TARGETS)
      get_property(added_tests GLOBAL PROPERTY ADDED_TESTS)
      foreach(filename ${added_tests})
      	if(${filename} MATCHES "integration_test")
      	  message(STATUS "Integration Test: ${filename}")
      	  set(INTEGRATION_TEST_TARGETS ${INTEGRATION_TEST_TARGETS} ${filename})
      	else()
      	  message(STATUS "Unit Test: ${filename}")
      	  set(UNIT_TEST_TARGETS ${UNIT_TEST_TARGETS} ${filename})
      	endif()
      endforeach()
    endmacro()
    
    macro(ADD_TEST_SUITE)
      set(options)
      set(oneValueArgs NAME TEST_REGEX)
      set(multiValueArgs DEPEND_ON_TARGETS)
      cmake_parse_arguments(ADD_TEST_SUITE
        "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
      #we have to escape the " for visual studio)
      add_custom_target(${ADD_TEST_SUITE_NAME} COMMAND ctest --tests-regex \"${ADD_TEST_SUITE_TEST_REGEX}\" -C $<CONFIG>)
       # This comment just ends the escaped signs, for VS highlighting "
      if(ADD_TEST_SUITE_DEPEND_ON_TARGETS)
        add_dependencies(${ADD_TEST_SUITE_NAME} ${ADD_TEST_SUITE_DEPEND_ON_TARGETS})
      endif()
      set_property(TARGET ${ADD_TEST_SUITE_NAME} PROPERTY FOLDER "_Test-Suites_")
    endmacro()
    
    
    
    function(CREATE_TEST_SUITES)
    	EXTRACT_UNIT_AND_INTEGRATION_TEST_TARGETS()
    
    	ADD_TEST_SUITE(
    	  NAME "Unit-Test-Suite"
    	  TEST_REGEX "^test"
    	  DEPEND_ON_TARGETS ${UNIT_TEST_TARGETS})
    
    	ADD_TEST_SUITE(
    	  NAME "Integration-Test-Suite"
    	  TEST_REGEX "^integration"
    	  DEPEND_ON_TARGETS ${INTEGRATION_TEST_TARGETS})
    	
    	ADD_TEST_SUITE(
    	  NAME "Cpplint-Test-Suite"
    	  TEST_REGEX "cpplint")
    
    	ADD_TEST_SUITE(
    	  NAME "Cppcheck-Test-Suite"
    	  TEST_REGEX "cppcheck")
    endfunction()