From 47394a6a0dbf54f8fa00cd2e3b1aa5f51b6267dd Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Mon, 23 Dec 2024 16:07:47 +0800 Subject: [PATCH] fix: add more UT cases --- source/libs/catalog/src/catalog.c | 7 +- source/libs/catalog/test/catalogTests.cpp | 1 + source/libs/qworker/src/qwMem.c | 2 + source/libs/scheduler/test/schedulerTests.cpp | 102 ++++++++ source/util/test/memPoolTest.cpp | 245 ++++++++++++++++++ 5 files changed, 356 insertions(+), 1 deletion(-) diff --git a/source/libs/catalog/src/catalog.c b/source/libs/catalog/src/catalog.c index 199bac5246..bc1462176a 100644 --- a/source/libs/catalog/src/catalog.c +++ b/source/libs/catalog/src/catalog.c @@ -424,6 +424,7 @@ int32_t ctgGetTbCfg(SCatalog* pCtg, SRequestConnInfo* pConn, SName* pTableName, CTG_RET(TSDB_CODE_SUCCESS); } +#if 0 int32_t ctgGetTbTag(SCatalog* pCtg, SRequestConnInfo* pConn, SName* pTableName, SArray** pRes) { SVgroupInfo vgroupInfo = {0}; STableCfg* pCfg = NULL; @@ -474,6 +475,7 @@ _return: CTG_RET(code); } +#endif int32_t ctgGetTbDistVgInfo(SCatalog* pCtg, SRequestConnInfo* pConn, SName* pTableName, SArray** pVgList) { STableMeta* tbMeta = NULL; @@ -1695,6 +1697,7 @@ _return: CTG_API_LEAVE(code); } +#if 0 int32_t catalogGetTableTag(SCatalog* pCtg, SRequestConnInfo* pConn, const SName* pTableName, SArray** pRes) { CTG_API_ENTER(); @@ -1709,6 +1712,7 @@ _return: CTG_API_LEAVE(code); } +#endif int32_t catalogRefreshGetTableCfg(SCatalog* pCtg, SRequestConnInfo* pConn, const SName* pTableName, STableCfg** pCfg) { CTG_API_ENTER(); @@ -1845,7 +1849,7 @@ _return: CTG_API_LEAVE(code); } - +#if 0 int32_t catalogAsyncUpdateViewMeta(SCatalog* pCtg, SViewMetaRsp* pMsg) { CTG_API_ENTER(); @@ -1860,6 +1864,7 @@ _return: CTG_API_LEAVE(code); } +#endif int32_t catalogGetViewMeta(SCatalog* pCtg, SRequestConnInfo* pConn, const SName* pViewName, STableMeta** pTableMeta) { CTG_API_ENTER(); diff --git a/source/libs/catalog/test/catalogTests.cpp b/source/libs/catalog/test/catalogTests.cpp index 7b0504504d..c2889f096b 100644 --- a/source/libs/catalog/test/catalogTests.cpp +++ b/source/libs/catalog/test/catalogTests.cpp @@ -2992,6 +2992,7 @@ TEST(apiTest, catalogGetTableIndex_test) { catalogDestroy(); } + TEST(apiTest, catalogGetDBCfg_test) { struct SCatalog *pCtg = NULL; SRequestConnInfo connInfo = {0}; diff --git a/source/libs/qworker/src/qwMem.c b/source/libs/qworker/src/qwMem.c index 69d4093221..6451e073c8 100644 --- a/source/libs/qworker/src/qwMem.c +++ b/source/libs/qworker/src/qwMem.c @@ -1,6 +1,7 @@ #include "qwInt.h" #include "qworker.h" +#if 0 void qwSetConcurrentTaskNumCb(int32_t taskNum) { int32_t finTaskNum = TMIN(taskNum, tsNumOfQueryThreads * QW_DEFAULT_THREAD_TASK_NUM); @@ -33,6 +34,7 @@ void qwIncConcurrentTaskNumCb(void) { //TODO } +#endif int32_t qwInitJobInfo(QW_FPARAMS_DEF, SQWJobInfo* pJob) { pJob->pSessions= taosHashInit(64, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), false, HASH_ENTRY_LOCK); diff --git a/source/libs/scheduler/test/schedulerTests.cpp b/source/libs/scheduler/test/schedulerTests.cpp index c13ea913f5..50b2527802 100644 --- a/source/libs/scheduler/test/schedulerTests.cpp +++ b/source/libs/scheduler/test/schedulerTests.cpp @@ -60,6 +60,10 @@ extern "C" int32_t schHandleCallback(void *param, const SDataBuf *pMsg, int32_t extern "C" int32_t schHandleNotifyCallback(void *param, SDataBuf *pMsg, int32_t code); extern "C" int32_t schHandleLinkBrokenCallback(void *param, SDataBuf *pMsg, int32_t code); extern "C" int32_t schRescheduleTask(SSchJob *pJob, SSchTask *pTask); +extern "C" int32_t schValidateRspMsgType(SSchJob *pJob, SSchTask *pTask, int32_t msgType); +extern "C" int32_t schProcessFetchRsp(SSchJob *pJob, SSchTask *pTask, char *msg, int32_t rspCode); +extern "C" int32_t schProcessResponseMsg(SSchJob *pJob, SSchTask *pTask, SDataBuf *pMsg, int32_t rspCode); + int64_t insertJobRefId = 0; int64_t queryJobRefId = 0; @@ -1473,6 +1477,104 @@ TEST(otherTest, function) { schMgmt.jobRef = -1; } +TEST(otherTest, branch) { + SSchJob job = {0}; + SSchTask task = {0}; + schValidateRspMsgType(&job, &task, TDMT_SCH_MERGE_FETCH_RSP); + + task.lastMsgType = TDMT_SCH_MERGE_FETCH_RSP - 1; + schValidateRspMsgType(&job, &task, TDMT_SCH_MERGE_FETCH_RSP); + + schValidateRspMsgType(&job, &task, 0); + + schValidateRspMsgType(&job, &task, TDMT_SCH_QUERY_RSP); + + task.lastMsgType = TDMT_SCH_QUERY_RSP - 1; + schValidateRspMsgType(&job, &task, TDMT_SCH_QUERY_RSP); + + schProcessFetchRsp(&job, &task, NULL, -1); + schProcessFetchRsp(&job, &task, NULL, 0); + + job.fetchRes = (void*)0x1; + schProcessFetchRsp(&job, &task, (char*)taosMemoryMalloc(0), 0); + job.fetchRes = NULL; + + SDataBuf databuf = {0}; + databuf.msgType = TDMT_VND_ALTER_TABLE_RSP; + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + databuf.msgType = TDMT_VND_SUBMIT_RSP; + databuf.pData = taosMemoryMalloc(0); + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + databuf.msgType = TDMT_VND_DELETE_RSP; + databuf.pData = taosMemoryMalloc(0); + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + databuf.msgType = TDMT_SCH_QUERY_RSP; + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + databuf.msgType = TDMT_SCH_QUERY_RSP; + databuf.pData = taosMemoryMalloc(0); + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + + databuf.msgType = TDMT_SCH_EXPLAIN_RSP; + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + databuf.msgType = TDMT_SCH_EXPLAIN_RSP; + databuf.pData = taosMemoryMalloc(0); + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + job.attr.explainMode = EXPLAIN_MODE_ANALYZE; + databuf.msgType = TDMT_SCH_EXPLAIN_RSP; + databuf.pData = taosMemoryMalloc(0); + job.status = JOB_TASK_STATUS_FAIL; + job.fetchRes = (void*)0x1; + schProcessResponseMsg(&job, &task, &databuf, 0); + job.fetchRes = NULL; + + job.attr.explainMode = EXPLAIN_MODE_ANALYZE; + databuf.msgType = TDMT_SCH_EXPLAIN_RSP; + databuf.pData = taosMemoryMalloc(0); + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + databuf.msgType = TDMT_SCH_DROP_TASK_RSP; + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + databuf.msgType = TDMT_SCH_LINK_BROKEN; + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + databuf.msgType = 0; + job.status = JOB_TASK_STATUS_FAIL; + schProcessResponseMsg(&job, &task, &databuf, 0); + + databuf.pData = taosMemoryMalloc(0); + schHandleHbCallback(NULL, &databuf, 0); + + __async_send_cb_fn_t fp = NULL; + schGetCallbackFp(TDMT_SCH_TASK_NOTIFY, &fp); + schGetCallbackFp(0, &fp); + + SQueryNodeEpId ep = {0}; + schBuildAndSendHbMsg(&ep, NULL); + + schBuildAndSendMsg(&job, &task, NULL, 0, NULL); + + schMgmt.jobRef = -1; +} + + void schtReset() { insertJobRefId = 0; queryJobRefId = 0; diff --git a/source/util/test/memPoolTest.cpp b/source/util/test/memPoolTest.cpp index d0c08b1318..a8da96711d 100644 --- a/source/util/test/memPoolTest.cpp +++ b/source/util/test/memPoolTest.cpp @@ -2048,7 +2048,252 @@ TEST(DisablePoolFuncTest, MultiThreadTest) { } #endif +#if 1 +TEST(functionsTest, internalFunc) { + char* caseName = "functionsTest:internalFunc"; + int32_t code = 0; + int64_t msize = 10; + void* pSession = NULL; + void* pJob = NULL; + + mptInitPool(); + + memset(mptCtx.jobCtxs, 0, sizeof(*mptCtx.jobCtxs)); + + assert(0 == taosMemPoolCallocJob(0, 0, (void**)&pJob)); + assert(0 == taosMemPoolInitSession(gMemPoolHandle, &pSession, pJob, "id")); + + int32_t loopTimes = 1; + int64_t st = 0; + void **addrList = (void**)taosMemCalloc(loopTimes, POINTER_BYTES); + + + // MALLOC + + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryMalloc(msize); + } + mptFreeAddrList(addrList, loopTimes); + + + + tsMemPoolFullFunc = 0; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryMalloc(msize); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + tsMemPoolFullFunc = 1; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryMalloc(msize); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + // CALLOC + + tsMemPoolFullFunc = 0; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryCalloc(1, msize); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + tsMemPoolFullFunc = 1; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryCalloc(1, msize); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryCalloc(1, msize); + } + //mptFreeAddrList(addrList, loopTimes); NO FREE FOR REALLOC + + // REALLOC + + tsMemPoolFullFunc = 0; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryRealloc(addrList[i], msize); + } + mptDisableMemoryPoolUsage(); + + + tsMemPoolFullFunc = 1; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryRealloc(addrList[i], msize); + } + mptDisableMemoryPoolUsage(); + + + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryRealloc(addrList[i], msize); + } + mptFreeAddrList(addrList, loopTimes); + + + // STRDUP + + tsMemPoolFullFunc = 0; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptStrdup("abc"); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + tsMemPoolFullFunc = 1; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptStrdup("abc"); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptStrdup("abc"); + } + mptFreeAddrList(addrList, loopTimes); + + // STRNDUP + + tsMemPoolFullFunc = 0; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptStrndup("abc", 3); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + tsMemPoolFullFunc = 1; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptStrndup("abc", 3); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptStrndup("abc", 3); + } + mptFreeAddrList(addrList, loopTimes); + + // ALIGNALLOC + + tsMemPoolFullFunc = 0; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryMallocAlign(8, msize); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + tsMemPoolFullFunc = 1; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryMallocAlign(8, msize); + } + mptDisableMemoryPoolUsage(); + mptFreeAddrList(addrList, loopTimes); + + + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryMallocAlign(8, msize); + } + //mptFreeAddrList(addrList, loopTimes); NO FREE FOR GETSIZE + + + // GETSIZE + + tsMemPoolFullFunc = 0; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + mptMemorySize(addrList[i]); + } + mptDisableMemoryPoolUsage(); + + + tsMemPoolFullFunc = 1; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + mptMemorySize(addrList[i]); + } + mptDisableMemoryPoolUsage(); + + + for (int32_t i = 0; i < loopTimes; ++i) { + mptMemorySize(addrList[i]); + } + + // FREE + + tsMemPoolFullFunc = 0; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + mptMemoryFree(addrList[i]); + } + mptDisableMemoryPoolUsage(); + + + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryMalloc(msize); + } + tsMemPoolFullFunc = 1; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + mptMemoryFree(addrList[i]); + } + mptDisableMemoryPoolUsage(); + + + for (int32_t i = 0; i < loopTimes; ++i) { + addrList[i] = (char*)mptMemoryMalloc(msize); + } + for (int32_t i = 0; i < loopTimes; ++i) { + mptMemoryFree(addrList[i]); + } + + // TRIM + + bool trimed = false; + tsMemPoolFullFunc = 0; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + mptMemoryTrim(0, NULL); + mptMemoryTrim(0, &trimed); + } + mptDisableMemoryPoolUsage(); + + + tsMemPoolFullFunc = 1; + mptEnableMemoryPoolUsage(gMemPoolHandle, pSession); + for (int32_t i = 0; i < loopTimes; ++i) { + mptMemoryTrim(0, NULL); + mptMemoryTrim(0, &trimed); + } + mptDisableMemoryPoolUsage(); + + +} +#endif #endif