Merge pull request #24810 from taosdata/opt/changeCoverityScan
Opt/change coverity scan
This commit is contained in:
commit
2d1c2ad0b2
|
@ -175,4 +175,8 @@ IF(NOT TD_DARWIN)
|
||||||
NAME idxFstUT
|
NAME idxFstUT
|
||||||
COMMAND idxFstUT
|
COMMAND idxFstUT
|
||||||
)
|
)
|
||||||
|
add_test(
|
||||||
|
NAME idxFstTest
|
||||||
|
COMMAND idxFstTest
|
||||||
|
)
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
|
@ -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(); }
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue