Max Bruckner 8 лет назад
Родитель
Сommit
21c02cd3e5
1 измененных файлов с 18 добавлено и 1 удалено
  1. 18 1
      tests/CMakeLists.txt

+ 18 - 1
tests/CMakeLists.txt

@@ -16,9 +16,26 @@ if(ENABLE_CJSON_TEST)
         parse_value
     )
 
+    option(ENABLE_VALGRIND OFF "Enable the valgrind memory checker for the tests.")
+    if (ENABLE_VALGRIND)
+        find_program(MEMORYCHECK_COMMAND valgrind)
+        if ("${MEMORYCHECK_COMMAND}" MATCHES "MEMORYCHECK_COMMAND-NOTFOUND")
+            message(WARNING "Valgrind couldn't be found.")
+            unset(MEMORYCHECK_COMMAND)
+        else()
+            set(MEMORYCHECK_COMMAND_OPTIONS --trace-children=yes --leak-check=full --error-exitcode=1)
+        endif()
+    endif()
+
     foreach(unity_test ${unity_tests})
         add_executable("${unity_test}" "${unity_test}.c")
         target_link_libraries("${unity_test}" "${CJSON_LIB}" unity)
-        add_test("${unity_test}" "${unity_test}")
+        if(MEMORYCHECK_COMMAND)
+            add_test(NAME "${unity_test}"
+                COMMAND "${MEMORYCHECK_COMMAND}" ${MEMORYCHECK_COMMAND_OPTIONS} "./${unity_test}")
+        else()
+            add_test(NAME "${unity_test}"
+                COMMAND "./${unity_test}")
+        endif()
     endforeach()
 endif()