diff options
| -rw-r--r-- | CMakeLists.txt | 29 | ||||
| -rw-r--r-- | deps/utable/test/unit_test_utable.cpp | 4 | ||||
| -rw-r--r-- | deps/utable/utable.c | 2 |
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; } |
