diff options
| author | yangwei <[email protected]> | 2023-08-11 16:56:15 +0800 |
|---|---|---|
| committer | yangwei <[email protected]> | 2023-08-11 16:56:15 +0800 |
| commit | fb6ff80e84230cf2cc409f7cd7878e33718cd48c (patch) | |
| tree | 44c9c0777a73add486d98f4dcdb04de86e05962b | |
| parent | 0c766ac60c1c71afbf6de38f97819fb2123a3d94 (diff) | |
🔧 build(enable cppcheck in CMakeLists): enable cppcheck when local make
Fixed some warnings, not completed.
| -rw-r--r-- | CMakeLists.txt | 57 | ||||
| -rw-r--r-- | CRDT/cm_sketch.c | 2 | ||||
| -rw-r--r-- | CRDT/crdt_base_gtest.cpp | 82 | ||||
| -rw-r--r-- | CRDT/crdt_tb_gtest.cpp | 4 | ||||
| -rw-r--r-- | CRDT/fair_token_bucket.c | 2 | ||||
| -rw-r--r-- | CRDT/st_hyperloglog.c | 3 | ||||
| -rw-r--r-- | cmake/Version.cmake | 2 | ||||
| -rw-r--r-- | deps/mpack/mpack.c | 2 |
8 files changed, 84 insertions, 70 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 14074a3..5c873ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,28 +14,41 @@ set(SWARMKV_DEPEND_DYN_LIB pthread uuid m) include_directories(${PROJECT_SOURCE_DIR}/inc/) include_directories(/opt/MESA/include/) -# find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck) -# if (CMAKE_CXX_CPPCHECK) - # list( - # APPEND CMAKE_CXX_CPPCHECK - # "--enable=warning" - # "--enable=all" - # "--force" - # "--std=c99" - # "--error-exitcode=1" - # "--suppress=unreadVariable" - # "--suppress=variableScope" - # "--suppress=ConfigurationNotChecked" - # "--suppress=unreachableCode" - # "--suppress=unusedFunction" - # "--suppress=missingInclude" - # "--suppress=uselessAssignmentPtrArg" - # "--suppress=unmatchedSuppression" - # ) - # set(CMAKE_C_CPPCHECK ${CMAKE_CXX_CPPCHECK}) -# else() - # message(FATAL_ERROR "Could not find the program cppcheck.") -# endif() + +find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck) +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=internalAstError" + "--suppress=redundantAssignment" + "--suppress=duplicateValueTernary" + "--suppress=sizeofDivisionMemfunc" + "--suppress=nullPointerRedundantCheck" + "--suppress=nullPointerArithmeticRedundantCheck" + "--suppress=shiftNegative" + "--suppress=shiftTooManyBits" + "--suppress=signConversionCond" + "--suppress=pointerSize" + "-I/usr/include/" + ) + set(CMAKE_C_CPPCHECK ${CMAKE_CXX_CPPCHECK}) +else() + message(FATAL_ERROR "Could not find the program cppcheck.") +endif() include_directories(include) #add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL]) diff --git a/CRDT/cm_sketch.c b/CRDT/cm_sketch.c index 9cdaca3..9f78072 100644 --- a/CRDT/cm_sketch.c +++ b/CRDT/cm_sketch.c @@ -125,8 +125,6 @@ static void cms_bin_log_add(struct cms_bin *bin, const uint64_t *hashes, size_t c=MIN(c, bin->bins[idx]); } - long pr=(long)pow(CMLS16_BASE, c); - long r=random()%pr; for(int t=0; t<times; t++) { int increase=increase_decision(c); diff --git a/CRDT/crdt_base_gtest.cpp b/CRDT/crdt_base_gtest.cpp index 24aa476..428985f 100644 --- a/CRDT/crdt_base_gtest.cpp +++ b/CRDT/crdt_base_gtest.cpp @@ -796,9 +796,9 @@ TEST(ORMap, SetGet) uuid_generate(uuid); map[i]=OR_map_new(uuid); } - size_t round=100; + size_t ROUND=100; char key_buffer[256], val_buffer[256]; - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); snprintf(val_buffer, sizeof(val_buffer), "%s-%zu", val_prefix, i); @@ -807,7 +807,7 @@ TEST(ORMap, SetGet) OR_map_sync(map, 2); struct OR_map_kv *kv_result; size_t success_cnt=0; - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); snprintf(val_buffer, sizeof(val_buffer), "%s-%zu", val_prefix, i); @@ -820,7 +820,7 @@ TEST(ORMap, SetGet) } OR_map_kv_free(kv_result); } - EXPECT_EQ(success_cnt, round); + EXPECT_EQ(success_cnt, ROUND); for(i=0; i<2; i++) { OR_map_free(map[i]); @@ -838,9 +838,9 @@ TEST(ORMap, Incrby) uuid_generate(uuid); map[i]=OR_map_new(uuid); } - size_t round=100; + size_t ROUND=100; char key_buffer[256]; - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); OR_map_incrby(map[i%2], key_buffer, strlen(key_buffer)+1, i, &result_integer); @@ -850,7 +850,7 @@ TEST(ORMap, Incrby) struct OR_map_kv *result; size_t success_cnt=0; - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); result=OR_map_get(map[i%2], key_buffer, strlen(key_buffer)+1); @@ -862,16 +862,16 @@ TEST(ORMap, Incrby) } OR_map_kv_free(result); } - EXPECT_EQ(success_cnt, round); + EXPECT_EQ(success_cnt, ROUND); - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); OR_map_incrby(map[i%2], key_buffer, strlen(key_buffer)+1, 998, &result_integer); } OR_map_sync(map, 2); success_cnt=0; - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); result=OR_map_get(map[i%2], key_buffer, strlen(key_buffer)+1); @@ -883,7 +883,7 @@ TEST(ORMap, Incrby) } OR_map_kv_free(result); } - EXPECT_EQ(success_cnt, round); + EXPECT_EQ(success_cnt, ROUND); for(i=0; i<2; i++) { @@ -901,9 +901,9 @@ TEST(ORMap, Incrby5K) map[i]=OR_map_new(uuid); } long long result_integer=0; - size_t round=5000; + size_t ROUND=5000; const char *key="priority-1"; - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { OR_map_incrby(map[i%2], key, strlen(key), 1, &result_integer); OR_map_incrby(map[(i+1)%2], key, strlen(key), -1, &result_integer); @@ -930,9 +930,9 @@ TEST(ORMap, Remove) uuid_generate(uuid); map[i]=OR_map_new(uuid); } - size_t round=100; + size_t ROUND=100; char key_buffer[256], val_buffer[256]; - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); if(i%3==0) @@ -954,7 +954,7 @@ TEST(ORMap, Remove) OR_map_merge_blob(map[0], blob, blob_sz); free(blob); - for(i=0; i<round/2; i++) + for(i=0; i<ROUND/2; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); OR_map_remove(map[i%2], key_buffer, strlen(key_buffer)+1); @@ -968,24 +968,24 @@ TEST(ORMap, Remove) size_t success_cnt=0, n_kv=0; int ret=0; n_kv=OR_map_cardinality(map[0]); - EXPECT_EQ(n_kv, round-round/2); + EXPECT_EQ(n_kv, ROUND-ROUND/2); n_kv=OR_map_cardinality(map[1]); - EXPECT_EQ(n_kv, round-round/2); + EXPECT_EQ(n_kv, ROUND-ROUND/2); - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); ret=OR_map_exisits(map[(i+1)%2], key_buffer, strlen(key_buffer)+1); - if(i<round/2) + if(i<ROUND/2) { success_cnt += (ret==0?1:0); } else { - success_cnt += (ret==1?1:1); + success_cnt += (ret==1?1:0); } } - EXPECT_EQ(success_cnt, round); + EXPECT_EQ(success_cnt, ROUND); for(i=0; i<2; i++) { OR_map_free(map[i]); @@ -1003,9 +1003,9 @@ TEST(ORMap, ObservedRemove) uuid_generate(uuid); map[i]=OR_map_new(uuid); } - size_t round=100; + size_t ROUND=100; char key_buffer[256], val_buffer[256]; - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { snprintf(key_buffer, sizeof(key_buffer), "%s-%zu", key_prefix, i); snprintf(val_buffer, sizeof(val_buffer), "%s-%zu", val_prefix, i); @@ -1256,7 +1256,7 @@ static void CMS_sync(struct CM_sketch *list[], size_t n) } TEST(CMSketch, Merge) { - size_t replica_number=2, round=10; + size_t replica_number=2, ROUND=10; long long key=1234; struct CM_sketch *cms[replica_number]; uuid_t uuid; @@ -1265,7 +1265,7 @@ TEST(CMSketch, Merge) uuid_generate(uuid); cms[i]=CM_sketch_new(uuid); } - for(size_t i=0; i<round; i++) + for(size_t i=0; i<ROUND; i++) { CM_sketch_add_n(cms[i%replica_number], (char*) &key, sizeof(key), 1); } @@ -1274,7 +1274,7 @@ TEST(CMSketch, Merge) for(size_t i=0; i<replica_number; i++) { ret=CM_sketch_query(cms[i], (char *)&key, sizeof(key)); - EXPECT_EQ(ret, round); + EXPECT_EQ(ret, ROUND); } for(size_t i=0; i<replica_number; i++) { @@ -1283,7 +1283,7 @@ TEST(CMSketch, Merge) } TEST(CMSketch, Idempotent) { - size_t replica_number=8, round=10000, i=0; + size_t replica_number=8, ROUND=10000, i=0; struct CM_sketch *cms[replica_number]; uuid_t uuid; @@ -1293,7 +1293,7 @@ TEST(CMSketch, Idempotent) cms[i]=CM_sketch_new(uuid); } int n_added=0; - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { CM_sketch_add_n(cms[i%replica_number], (char*) &i, sizeof(i), i); n_added+=i; @@ -1305,7 +1305,7 @@ TEST(CMSketch, Idempotent) struct CM_sketch_info info; CM_sketch_info(cms[0], &info); - for(i=0; i<round; i++) + for(i=0; i<ROUND; i++) { ret=CM_sketch_query(cms[(i+1)%replica_number], (char*) &i, sizeof(i)); if((double)ret<((double)i+info.error_rate*n_added)) @@ -1313,7 +1313,7 @@ TEST(CMSketch, Idempotent) success++; } } - EXPECT_GE((double)success/round, info.confidence); + EXPECT_GE((double)success/ROUND, info.confidence); for(i=0; i<replica_number; i++) { CM_sketch_free(cms[i]); @@ -1535,7 +1535,7 @@ TEST(STHyperLogLog, VariousWindow70k) st_case[i].n_replica=1; st_case[i].est_count=st_hll_test_sliding_window(st_case+i); } - int success=st_hll_case_print(st_case, n_case); + st_hll_case_print(st_case, n_case); //70000 using linear estimation, which is the worst case for precision 15. //Much better at precision 9. //EXPECT_EQ(success, n_case); @@ -1547,7 +1547,7 @@ TEST(STHyperLogLog, VariousWindow70k) st_case[i].n_replica=1; st_case[i].est_count=st_hll_test_sliding_window(st_case+i); } - success=st_hll_case_print(st_case, n_case); + int success=st_hll_case_print(st_case, n_case); EXPECT_EQ(success, n_case); } TEST(STHyperLogLog, Debug) @@ -1653,7 +1653,7 @@ TEST(STHyperLogLog, Reconfigure) { h[i]=ST_hyperloglog_new(precision, time_window_s, start); } - int key=1319823, j=0; + int key=1319823; int n_add=0; int add_per_step=100; step.tv_sec=0; @@ -1664,7 +1664,7 @@ TEST(STHyperLogLog, Reconfigure) timeradd(&now, &step, &now); for(int i=0; i<add_per_step; i++) { - j=random()%n_replica; + int j=random()%n_replica; key++; ST_hyperloglog_add(h[j], (const char *)&key, sizeof(key), now); n_add++; @@ -1702,7 +1702,7 @@ TEST(STHyperLogLog, Reconfigure) timeradd(&now, &step, &now); for(int i=0; i<add_per_step; i++) { - j=random()%n_replica; + int j=random()%n_replica; key++; ST_hyperloglog_add(h[j], (const char *)&key, sizeof(key), now); n_add++; @@ -1736,9 +1736,9 @@ TEST(GArray, Basic) uuid_generate(uuid); a[i]=g_array_new(uuid, array_sz); } - int r=0, round=100; + int r=0, ROUND=100; long long increment=77; - for(int i=0; i<round; i++) + for(int i=0; i<ROUND; i++) { r=random()%n_replica; for(int j=0; j<array_sz; j++) @@ -1758,7 +1758,7 @@ TEST(GArray, Basic) { r=random()%n_replica; value=g_array_get(a[r], i); - if(value == (long long)round*increment) success++; + if(value == (long long)ROUND*increment) success++; } EXPECT_EQ(success, array_sz); g_array_reset(a[0]); @@ -1779,7 +1779,7 @@ TEST(GArray, Reset) uuid_t uuid; size_t n_replica=2; int array_sz=1024; - size_t round=100; + size_t ROUND=100; struct g_array *a[n_replica]; for(size_t i=0; i<n_replica; i++) { @@ -1788,7 +1788,7 @@ TEST(GArray, Reset) } long long idx=1, value=0; srandom(17); - for(size_t i=0; i<round; i++) + for(size_t i=0; i<ROUND; i++) { g_array_incrby(a[0], idx, 100); g_array_incrby(a[1], idx, 100); diff --git a/CRDT/crdt_tb_gtest.cpp b/CRDT/crdt_tb_gtest.cpp index d759ead..34a2a1a 100644 --- a/CRDT/crdt_tb_gtest.cpp +++ b/CRDT/crdt_tb_gtest.cpp @@ -792,8 +792,8 @@ double test_fair_token_bucket(struct sftb_class *classes, size_t n_class, long l } long long available_tokens=CIR*duration_s+CBS; double index=max_min_fairness_index(available_tokens, classes, n_class); - int print=1; - if(print) + //int print=1; + //if(print) { printf("class\tweight\tdemand\tallocated\tideal\r\n"); for(size_t i=0; i<n_class; i++) diff --git a/CRDT/fair_token_bucket.c b/CRDT/fair_token_bucket.c index c0024f8..9491e5f 100644 --- a/CRDT/fair_token_bucket.c +++ b/CRDT/fair_token_bucket.c @@ -98,7 +98,7 @@ static void ftb_perturb(struct fair_token_bucket *ftb, struct timeval now) long long fair_token_bucket_consume(struct fair_token_bucket *ftb, struct timeval now, const char *key, size_t keylen, long long weight, enum tb_consume_type cmd, long long tokens) { ftb->debug_consume_call++; - if(weight>FAIR_TB_WEIGHT_MAX || weight<0) + if(weight>FAIR_TB_WEIGHT_MAX || weight<=0) return -1; ST_hyperloglog_add(ftb->hll[weight-1], key, keylen, now); diff --git a/CRDT/st_hyperloglog.c b/CRDT/st_hyperloglog.c index 4e40a43..9e58f31 100644 --- a/CRDT/st_hyperloglog.c +++ b/CRDT/st_hyperloglog.c @@ -43,7 +43,10 @@ struct ST_hyperloglog *ST_hyperloglog_new(unsigned char precision, int time_wind struct ST_hyperloglog *h=ALLOC(struct ST_hyperloglog, 1); // Ensure the precision is somewhat sane if (precision < HLL_MIN_PRECISION || precision > HLL_MAX_PRECISION) + { + free(h); return NULL; + } // Store precision h->cfg.precision = precision; diff --git a/cmake/Version.cmake b/cmake/Version.cmake index 752f20f..654b4fc 100644 --- a/cmake/Version.cmake +++ b/cmake/Version.cmake @@ -3,7 +3,7 @@ set(__SOURCE_AUTORESIVISION ${CMAKE_SOURCE_DIR}/autorevision.sh) set(__AUTORESIVISION ${CMAKE_BINARY_DIR}/autorevision.sh) -set(__VERSION_CACHE ${CMAKE_SOURCE_DIR}/version.txt) +set(__VERSION_CACHE ${CMAKE_BINARY_DIR}/version.txt) set(__VERSION_CONFIG ${CMAKE_BINARY_DIR}/version.cmake) file(COPY ${__SOURCE_AUTORESIVISION} DESTINATION ${CMAKE_BINARY_DIR} diff --git a/deps/mpack/mpack.c b/deps/mpack/mpack.c index 2557d5b..528610b 100644 --- a/deps/mpack/mpack.c +++ b/deps/mpack/mpack.c @@ -5991,7 +5991,7 @@ static bool mpack_file_tree_read(mpack_tree_t* tree, mpack_file_tree_t* file_tre long total = 0; while (total < size) { size_t read = fread(file_tree->data + total, 1, (size_t)(size - total), file); - if (read <= 0) { + if (read == 0) { mpack_tree_init_error(tree, mpack_error_io); MPACK_FREE(file_tree->data); return false; |
