summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt29
-rw-r--r--deps/utable/test/unit_test_utable.cpp4
-rw-r--r--deps/utable/utable.c2
3 files changed, 33 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9dc150a..0161439 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,6 +20,35 @@ endif()
option(ENABLE_PIC "Generate position independent code (necessary for shared libraries)" TRUE)
option(ENABLE_WARNING_ALL "Enable all optional warnings which are desirable for normal code" TRUE)
+find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck HINTS "/home/chenzizhan/cppcheck/cfg")
+if (CMAKE_CXX_CPPCHECK)
+ list(
+ APPEND CMAKE_CXX_CPPCHECK
+ "--enable=all"
+ "--error-exitcode=1"
+ "--suppress=unusedFunction"
+ "--suppress=missingInclude"
+ "--suppress=uselessAssignmentPtrArg"
+ "--suppress=unmatchedSuppression"
+ "--suppress=variableScope"
+ "--suppress=unreadVariable"
+ "--suppress=cstyleCast"
+ "--suppress=memleakOnRealloc"
+ "--suppress=constParameter"
+ "--suppress=uselessAssignmentArg"
+ "--suppress=uninitvar"
+ "--suppress=unusedStructMember"
+ "--suppress=unreachableCode"
+ "--suppress=missingIncludeSystem"
+ "--suppress=*:${PROJECT_SOURCE_DIR}/deps/toml/*"
+ "--suppress=*:${PROJECT_SOURCE_DIR}/deps/mpack/*"
+ )
+ set(CMAKE_C_CPPCHECK ${CMAKE_CXX_CPPCHECK})
+else()
+ message(FATAL_ERROR "Could not find the program cppcheck.")
+endif()
+
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lelf")
diff --git a/deps/utable/test/unit_test_utable.cpp b/deps/utable/test/unit_test_utable.cpp
index dd1e04f..4810865 100644
--- a/deps/utable/test/unit_test_utable.cpp
+++ b/deps/utable/test/unit_test_utable.cpp
@@ -91,7 +91,7 @@ TEST(utable_test, add_blob_and_query)
utable_free(table);
}
-void test_utable_check_if_value_in_json(cJSON *tag_obj, const char *key, std::string &value)
+void test_utable_check_if_value_in_json(cJSON *tag_obj, const char *key, const std::string &value)
{
cJSON *tag_val = cJSON_GetObjectItem(tag_obj, key);
EXPECT_NE(tag_val, nullptr);
@@ -158,7 +158,7 @@ char *test_get_cstring_from_mpack_node(mpack_node_t node)
return str;
}
-void test_utable_check_if_value_in_mpack(mpack_node_t item, const char *key, std::string &value)
+void test_utable_check_if_value_in_mpack(mpack_node_t item, const char *key, const std::string &value)
{
mpack_node_t key_node = mpack_node_map_cstr(item, "key");
mpack_node_t type_node = mpack_node_map_cstr(item, "type");
diff --git a/deps/utable/utable.c b/deps/utable/utable.c
index b584a31..f8ab79e 100644
--- a/deps/utable/utable.c
+++ b/deps/utable/utable.c
@@ -428,6 +428,8 @@ struct utable *utable_deserialize(const char *blob, size_t blob_len)
printf("ERR unknown type %s\n", type_str);
mpack_tree_destroy(&tree);
free(type_str);
+ free(new_item->key);
+ free(new_item);
return NULL;
}