Merge pull request #24810 from taosdata/opt/changeCoverityScan

Opt/change coverity scan
This commit is contained in:
Hongze Cheng 2024-02-23 08:52:34 +08:00 committed by GitHub
commit 2d1c2ad0b2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 51 additions and 25 deletions

View File

@ -175,4 +175,8 @@ IF(NOT TD_DARWIN)
NAME idxFstUT NAME idxFstUT
COMMAND idxFstUT COMMAND idxFstUT
) )
add_test(
NAME idxFstTest
COMMAND idxFstTest
)
ENDIF () ENDIF ()

View File

@ -1,4 +1,5 @@
#include <gtest/gtest.h>
#include <algorithm> #include <algorithm>
#include <iostream> #include <iostream>
#include <string> #include <string>
@ -14,6 +15,12 @@
#include "tutil.h" #include "tutil.h"
void* callback(void* s) { return s; } void* callback(void* s) { return s; }
class FstEnv : public ::testing::Test {
protected:
virtual void SetUp() {}
virtual void TearDown() {}
};
static std::string fileName = TD_TMP_DIR_PATH "tindex.tindex"; static std::string fileName = TD_TMP_DIR_PATH "tindex.tindex";
class FstWriter { class FstWriter {
public: public:
@ -154,7 +161,7 @@ class FstReadMemory {
int32_t _size; int32_t _size;
}; };
#define L 100 #define L 200
#define M 100 #define M 100
#define N 100 #define N 100
@ -200,7 +207,7 @@ void checkMillonWriteAndReadOfFst() {
FstWriter* fw = new FstWriter; FstWriter* fw = new FstWriter;
Performance_fstWriteRecords(fw); Performance_fstWriteRecords(fw);
delete fw; delete fw;
FstReadMemory* fr = new FstReadMemory(1024 * 64 * 1024); FstReadMemory* fr = new FstReadMemory(1024 * 8 * 1024);
if (fr->init()) { if (fr->init()) {
printf("success to init fst read"); printf("success to init fst read");
@ -637,23 +644,31 @@ void iterTFileReader(char* path, char* uid, char* colName, char* ver) {
tfileIteratorDestroy(iter); tfileIteratorDestroy(iter);
} }
int main(int argc, char* argv[]) { // int main(int argc, char* argv[]) {
// tool to check all kind of fst test // // tool to check all kind of fst test
// if (argc > 1) { validateTFile(argv[1]); } // // if (argc > 1) { validateTFile(argv[1]); }
// if (argc > 4) { // // if (argc > 4) {
// path suid colName ver // // path suid colName ver
// iterTFileReader(argv[1], argv[2], argv[3], argv[4]); // // iterTFileReader(argv[1], argv[2], argv[3], argv[4]);
//} // //}
checkFstCheckIterator1(); // checkFstCheckIterator1();
// checkFstCheckIterator2(); // // checkFstCheckIterator2();
// checkFstCheckIteratorPrefix(); // // checkFstCheckIteratorPrefix();
// checkFstCheckIteratorRange1(); // // checkFstCheckIteratorRange1();
// checkFstCheckIteratorRange2(); // // checkFstCheckIteratorRange2();
// checkFstCheckIteratorRange3(); // // checkFstCheckIteratorRange3();
// checkFstLongTerm(); // // checkFstLongTerm();
// checkFstPrefixSearch(); // // checkFstPrefixSearch();
// checkMillonWriteAndReadOfFst(); // // checkMillonWriteAndReadOfFst();
return 1; // return 1;
} // }
TEST_F(FstEnv, checkIterator1) { checkFstCheckIterator1(); }
TEST_F(FstEnv, checkItertor2) { checkFstCheckIterator2(); }
TEST_F(FstEnv, checkPrefix) { checkFstCheckIteratorPrefix(); }
TEST_F(FstEnv, checkRange1) { checkFstCheckIteratorRange1(); }
TEST_F(FstEnv, checkRange2) { checkFstCheckIteratorRange2(); }
TEST_F(FstEnv, checkRange3) { checkFstCheckIteratorRange3(); }
TEST_F(FstEnv, checkLongTerm) { checkFstLongTerm(); }
TEST_F(FstEnv, checkMillonWriteData) { checkMillonWriteAndReadOfFst(); }

View File

@ -21,7 +21,7 @@
#include "tutil.h" #include "tutil.h"
static int32_t initForwardBackwardPtr(SSkipList *pSkipList); static int32_t initForwardBackwardPtr(SSkipList *pSkipList);
static SSkipListNode *getPriorNode(SSkipList *pSkipList, const char *val, int32_t order, SSkipListNode **pCur); static SSkipListNode * getPriorNode(SSkipList *pSkipList, const char *val, int32_t order, SSkipListNode **pCur);
static void tSkipListRemoveNodeImpl(SSkipList *pSkipList, SSkipListNode *pNode); static void tSkipListRemoveNodeImpl(SSkipList *pSkipList, SSkipListNode *pNode);
static void tSkipListCorrectLevel(SSkipList *pSkipList); static void tSkipListCorrectLevel(SSkipList *pSkipList);
static SSkipListIterator *doCreateSkipListIterator(SSkipList *pSkipList, int32_t order); static SSkipListIterator *doCreateSkipListIterator(SSkipList *pSkipList, int32_t order);
@ -131,12 +131,14 @@ SSkipListNode *tSkipListPut(SSkipList *pSkipList, void *pData) {
return pNode; return pNode;
} }
#ifdef BUILD_NO_CALL
void tSkipListPutBatchByIter(SSkipList *pSkipList, void *iter, iter_next_fn_t iterate) { void tSkipListPutBatchByIter(SSkipList *pSkipList, void *iter, iter_next_fn_t iterate) {
SSkipListNode *backward[MAX_SKIP_LIST_LEVEL] = {0}; SSkipListNode *backward[MAX_SKIP_LIST_LEVEL] = {0};
SSkipListNode *forward[MAX_SKIP_LIST_LEVEL] = {0}; SSkipListNode *forward[MAX_SKIP_LIST_LEVEL] = {0};
bool hasDup = false; bool hasDup = false;
char *pKey = NULL; char * pKey = NULL;
char *pDataKey = NULL; char * pDataKey = NULL;
int32_t compare = 0; int32_t compare = 0;
tSkipListWLock(pSkipList); tSkipListWLock(pSkipList);
@ -260,6 +262,7 @@ void tSkipListRemoveNode(SSkipList *pSkipList, SSkipListNode *pNode) {
tSkipListCorrectLevel(pSkipList); tSkipListCorrectLevel(pSkipList);
tSkipListUnlock(pSkipList); tSkipListUnlock(pSkipList);
} }
#endif
SSkipListIterator *tSkipListCreateIter(SSkipList *pSkipList) { SSkipListIterator *tSkipListCreateIter(SSkipList *pSkipList) {
if (pSkipList == NULL) return NULL; if (pSkipList == NULL) return NULL;
@ -350,6 +353,7 @@ void *tSkipListDestroyIter(SSkipListIterator *iter) {
return NULL; return NULL;
} }
#ifdef BUILD_NO_CALL
void tSkipListPrint(SSkipList *pSkipList, int16_t nlevel) { void tSkipListPrint(SSkipList *pSkipList, int16_t nlevel) {
if (pSkipList == NULL || pSkipList->level < nlevel || nlevel <= 0) { if (pSkipList == NULL || pSkipList->level < nlevel || nlevel <= 0) {
return; return;
@ -358,7 +362,7 @@ void tSkipListPrint(SSkipList *pSkipList, int16_t nlevel) {
SSkipListNode *p = SL_NODE_GET_FORWARD_POINTER(pSkipList->pHead, nlevel - 1); SSkipListNode *p = SL_NODE_GET_FORWARD_POINTER(pSkipList->pHead, nlevel - 1);
int32_t id = 1; int32_t id = 1;
char *prev = NULL; char * prev = NULL;
while (p != pSkipList->pTail) { while (p != pSkipList->pTail) {
char *key = SL_GET_NODE_KEY(pSkipList, p); char *key = SL_GET_NODE_KEY(pSkipList, p);
@ -392,6 +396,7 @@ void tSkipListPrint(SSkipList *pSkipList, int16_t nlevel) {
p = SL_NODE_GET_FORWARD_POINTER(p, nlevel - 1); p = SL_NODE_GET_FORWARD_POINTER(p, nlevel - 1);
} }
} }
#endif
static void tSkipListDoInsert(SSkipList *pSkipList, SSkipListNode **direction, SSkipListNode *pNode, bool isForward) { static void tSkipListDoInsert(SSkipList *pSkipList, SSkipListNode **direction, SSkipListNode *pNode, bool isForward) {
for (int32_t i = 0; i < pNode->level; ++i) { for (int32_t i = 0; i < pNode->level; ++i) {
@ -460,7 +465,7 @@ static FORCE_INLINE int32_t tSkipListUnlock(SSkipList *pSkipList) {
static bool tSkipListGetPosToPut(SSkipList *pSkipList, SSkipListNode **backward, void *pData) { static bool tSkipListGetPosToPut(SSkipList *pSkipList, SSkipListNode **backward, void *pData) {
int32_t compare = 0; int32_t compare = 0;
bool hasDupKey = false; bool hasDupKey = false;
char *pDataKey = pSkipList->keyFn(pData); char * pDataKey = pSkipList->keyFn(pData);
if (pSkipList->size == 0) { if (pSkipList->size == 0) {
for (int32_t i = 0; i < pSkipList->maxLevel; i++) { for (int32_t i = 0; i < pSkipList->maxLevel; i++) {
@ -516,6 +521,7 @@ static bool tSkipListGetPosToPut(SSkipList *pSkipList, SSkipListNode **backward,
return hasDupKey; return hasDupKey;
} }
#ifdef BUILD_NO_CALL
static void tSkipListRemoveNodeImpl(SSkipList *pSkipList, SSkipListNode *pNode) { static void tSkipListRemoveNodeImpl(SSkipList *pSkipList, SSkipListNode *pNode) {
int32_t level = pNode->level; int32_t level = pNode->level;
uint8_t dupMode = SL_DUP_MODE(pSkipList); uint8_t dupMode = SL_DUP_MODE(pSkipList);
@ -540,6 +546,7 @@ static void tSkipListCorrectLevel(SSkipList *pSkipList) {
pSkipList->level -= 1; pSkipList->level -= 1;
} }
} }
#endif
UNUSED_FUNC static FORCE_INLINE void recordNodeEachLevel(SSkipList *pSkipList, UNUSED_FUNC static FORCE_INLINE void recordNodeEachLevel(SSkipList *pSkipList,
int32_t level) { // record link count in each level int32_t level) { // record link count in each level