Merge branch 'develop' into xiaoping/add_test_case
This commit is contained in:
commit
1f08d25d63
|
@ -39,7 +39,7 @@ def pre_test(){
|
|||
sudo rmtaos || echo "taosd has not installed"
|
||||
'''
|
||||
sh '''
|
||||
|
||||
ps -ef | grep taosd | grep -v grep | awk '{print $2}' | xargs kill -9
|
||||
cd ${WKC}
|
||||
git checkout develop
|
||||
git reset --hard HEAD~10 >/dev/null
|
||||
|
|
|
@ -3,6 +3,53 @@ PROJECT(TDengine)
|
|||
|
||||
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc)
|
||||
|
||||
FIND_PACKAGE(Git)
|
||||
IF (GIT_FOUND)
|
||||
MESSAGE("Git found")
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND ${GIT_EXECUTABLE} log --pretty=oneline -n 1 ../src/kit/taosdemo/taosdemo.c
|
||||
RESULT_VARIABLE RESULT
|
||||
OUTPUT_VARIABLE TAOSDEMO_COMMIT)
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND bash "-c" "echo '${TAOSDEMO_COMMIT}' | awk '{print $1}' | cut -c -9"
|
||||
RESULT_VARIABLE RESULT
|
||||
OUTPUT_VARIABLE TAOSDEMO_COMMIT_SHA1)
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND ${GIT_EXECUTABLE} status -z -s ../src/kit/taosdemo/taosdemo.c
|
||||
RESULT_VARIABLE RESULT
|
||||
OUTPUT_VARIABLE TAOSDEMO_STATUS)
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND bash "-c" "echo '${TAOSDEMO_STATUS}' | awk '{print $1}'"
|
||||
RESULT_VARIABLE RESULT
|
||||
OUTPUT_VARIABLE TAOSDEMO_STATUS)
|
||||
MESSAGE("taosdemo.c status: " ${TAOSDEMO_STATUS})
|
||||
ELSE()
|
||||
MESSAGE("Git not found")
|
||||
SET(TAOSDEMO_COMMIT_SHA1 "unknown")
|
||||
SET(TAOSDEMO_STATUS "unknown")
|
||||
ENDIF (GIT_FOUND)
|
||||
|
||||
STRING(STRIP ${TAOSDEMO_COMMIT_SHA1} TAOSDEMO_COMMIT_SHA1)
|
||||
MESSAGE("taosdemo's latest commit in short is:" ${TAOSDEMO_COMMIT_SHA1})
|
||||
STRING(STRIP ${TAOSDEMO_STATUS} TAOSDEMO_STATUS)
|
||||
|
||||
IF (TAOSDEMO_STATUS MATCHES "M")
|
||||
SET(TAOSDEMO_STATUS "modified")
|
||||
ELSE()
|
||||
SET(TAOSDEMO_STATUS "")
|
||||
ENDIF ()
|
||||
MESSAGE("taosdemo's status is:" ${TAOSDEMO_STATUS})
|
||||
|
||||
ADD_DEFINITIONS(-DTAOSDEMO_COMMIT_SHA1="${TAOSDEMO_COMMIT_SHA1}")
|
||||
ADD_DEFINITIONS(-DTAOSDEMO_STATUS="${TAOSDEMO_STATUS}")
|
||||
|
||||
MESSAGE("VERNUMBER is:" ${VERNUMBER})
|
||||
IF (VERNUMBER MATCHES "")
|
||||
ADD_DEFINITIONS(-DTD_VERNUMBER="TDengie-version-unknown")
|
||||
ELSE()
|
||||
ADD_DEFINITIONS(-DTD_VERNUMBER="${VERNUMBER}")
|
||||
ENDIF ()
|
||||
|
||||
IF (TD_LINUX)
|
||||
AUX_SOURCE_DIRECTORY(. SRC)
|
||||
ADD_EXECUTABLE(taosdemo ${SRC})
|
||||
|
|
|
@ -94,6 +94,7 @@ enum TEST_MODE {
|
|||
|
||||
#define DEFAULT_TIMESTAMP_STEP 1
|
||||
|
||||
|
||||
typedef enum CREATE_SUB_TALBE_MOD_EN {
|
||||
PRE_CREATE_SUBTBL,
|
||||
AUTO_CREATE_SUBTBL,
|
||||
|
@ -236,7 +237,7 @@ typedef struct SSuperTable_S {
|
|||
int childTblOffset;
|
||||
|
||||
int multiThreadWriteOneTbl; // 0: no, 1: yes
|
||||
int rowsPerTbl; //
|
||||
int interlaceRows; //
|
||||
int disorderRatio; // 0: no disorder, >0: x%
|
||||
int disorderRange; // ms or us by database precision
|
||||
int maxSqlLen; //
|
||||
|
@ -590,6 +591,32 @@ static FILE * g_fpOfInsertResult = NULL;
|
|||
|
||||
static void ERROR_EXIT(const char *msg) { perror(msg); exit(-1); }
|
||||
|
||||
#ifndef TAOSDEMO_COMMIT_SHA1
|
||||
#define TAOSDEMO_COMMIT_SHA1 "unknown"
|
||||
#endif
|
||||
|
||||
#ifndef TD_VERNUMBER
|
||||
#define TD_VERNUMBER "unknown"
|
||||
#endif
|
||||
|
||||
#ifndef TAOSDEMO_STATUS
|
||||
#define TAOSDEMO_STATUS "unknown"
|
||||
#endif
|
||||
|
||||
static void printVersion() {
|
||||
char tdengine_ver[] = TD_VERNUMBER;
|
||||
char taosdemo_ver[] = TAOSDEMO_COMMIT_SHA1;
|
||||
char taosdemo_status[] = TAOSDEMO_STATUS;
|
||||
|
||||
if (strlen(taosdemo_status) == 0) {
|
||||
printf("taosdemo verison %s-%s\n",
|
||||
tdengine_ver, taosdemo_ver);
|
||||
} else {
|
||||
printf("taosdemo verison %s-%s, status:%s\n",
|
||||
tdengine_ver, taosdemo_ver, taosdemo_status);
|
||||
}
|
||||
}
|
||||
|
||||
static void printHelp() {
|
||||
char indent[10] = " ";
|
||||
printf("%s%s%s%s\n", indent, "-f", indent,
|
||||
|
@ -647,6 +674,8 @@ static void printHelp() {
|
|||
"Out of order data's range, ms, default is 1000.");
|
||||
printf("%s%s%s%s\n", indent, "-g", indent,
|
||||
"Print debug info.");
|
||||
printf("%s%s%s%s\n", indent, "-V, --version", indent,
|
||||
"Print version info.");
|
||||
/* printf("%s%s%s%s\n", indent, "-D", indent,
|
||||
"if elete database if exists. 0: no, 1: yes, default is 1");
|
||||
*/
|
||||
|
@ -788,6 +817,10 @@ static void parse_args(int argc, char *argv[], SArguments *arguments) {
|
|||
|| arguments->method_of_delete > 3) {
|
||||
arguments->method_of_delete = 0;
|
||||
}
|
||||
} else if ((strcmp(argv[i], "--version") == 0) ||
|
||||
(strcmp(argv[i], "-V") == 0)){
|
||||
printVersion();
|
||||
exit(0);
|
||||
} else if (strcmp(argv[i], "--help") == 0) {
|
||||
printHelp();
|
||||
exit(0);
|
||||
|
@ -1166,8 +1199,8 @@ static int printfInsertMeta() {
|
|||
}else {
|
||||
printf(" multiThreadWriteOneTbl: \033[33myes\033[0m\n");
|
||||
}
|
||||
printf(" rowsPerTbl: \033[33m%d\033[0m\n",
|
||||
g_Dbs.db[i].superTbls[j].rowsPerTbl);
|
||||
printf(" interlaceRows: \033[33m%d\033[0m\n",
|
||||
g_Dbs.db[i].superTbls[j].interlaceRows);
|
||||
printf(" disorderRange: \033[33m%d\033[0m\n",
|
||||
g_Dbs.db[i].superTbls[j].disorderRange);
|
||||
printf(" disorderRatio: \033[33m%d\033[0m\n",
|
||||
|
@ -1328,7 +1361,7 @@ static void printfInsertMetaToFile(FILE* fp) {
|
|||
}else {
|
||||
fprintf(fp, " multiThreadWriteOneTbl: yes\n");
|
||||
}
|
||||
fprintf(fp, " rowsPerTbl: %d\n", g_Dbs.db[i].superTbls[j].rowsPerTbl);
|
||||
fprintf(fp, " interlaceRows: %d\n", g_Dbs.db[i].superTbls[j].interlaceRows);
|
||||
fprintf(fp, " disorderRange: %d\n", g_Dbs.db[i].superTbls[j].disorderRange);
|
||||
fprintf(fp, " disorderRatio: %d\n", g_Dbs.db[i].superTbls[j].disorderRatio);
|
||||
fprintf(fp, " maxSqlLen: %d\n", g_Dbs.db[i].superTbls[j].maxSqlLen);
|
||||
|
@ -2540,8 +2573,8 @@ static void* createTable(void *sarg)
|
|||
len = 0;
|
||||
verbosePrint("%s() LN%d %s\n", __func__, __LINE__, buffer);
|
||||
if (0 != queryDbExec(winfo->taos, buffer, NO_INSERT_TYPE)){
|
||||
free(buffer);
|
||||
errorPrint( "queryDbExec() failed. buffer:\n%s\n", buffer);
|
||||
free(buffer);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -3028,9 +3061,10 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
|
|||
if (threads2 && threads2->type == cJSON_Number) {
|
||||
g_Dbs.threadCountByCreateTbl = threads2->valueint;
|
||||
} else if (!threads2) {
|
||||
g_Dbs.threadCountByCreateTbl = 1;
|
||||
g_Dbs.threadCountByCreateTbl = g_args.num_of_threads;
|
||||
} else {
|
||||
printf("ERROR: failed to read json, threads2 not found\n");
|
||||
errorPrint("%s() LN%d, failed to read json, threads2 not found\n",
|
||||
__func__, __LINE__);
|
||||
goto PARSE_OVER;
|
||||
}
|
||||
|
||||
|
@ -3545,13 +3579,15 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
|
|||
goto PARSE_OVER;
|
||||
}
|
||||
|
||||
cJSON* rowsPerTbl = cJSON_GetObjectItem(stbInfo, "interlace_rows");
|
||||
if (rowsPerTbl && rowsPerTbl->type == cJSON_Number) {
|
||||
g_Dbs.db[i].superTbls[j].rowsPerTbl = rowsPerTbl->valueint;
|
||||
} else if (!rowsPerTbl) {
|
||||
g_Dbs.db[i].superTbls[j].rowsPerTbl = 0; // 0 means progressive mode, > 0 mean interlace mode. max value is less or equ num_of_records_per_req
|
||||
cJSON* interlaceRows = cJSON_GetObjectItem(stbInfo, "interlace_rows");
|
||||
if (interlaceRows && interlaceRows->type == cJSON_Number) {
|
||||
g_Dbs.db[i].superTbls[j].interlaceRows = interlaceRows->valueint;
|
||||
} else if (!interlaceRows) {
|
||||
g_Dbs.db[i].superTbls[j].interlaceRows = 0; // 0 means progressive mode, > 0 mean interlace mode. max value is less or equ num_of_records_per_req
|
||||
} else {
|
||||
errorPrint("%s() LN%d, failed to read json, rowsPerTbl input mistake\n", __func__, __LINE__);
|
||||
errorPrint(
|
||||
"%s() LN%d, failed to read json, interlace rows input mistake\n",
|
||||
__func__, __LINE__);
|
||||
goto PARSE_OVER;
|
||||
}
|
||||
|
||||
|
@ -4472,17 +4508,17 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
|
|||
int insertMode;
|
||||
char tableName[TSDB_TABLE_NAME_LEN];
|
||||
|
||||
int rowsPerTbl = superTblInfo?superTblInfo->rowsPerTbl:g_args.interlace_rows;
|
||||
int interlaceRows = superTblInfo?superTblInfo->interlaceRows:g_args.interlace_rows;
|
||||
|
||||
if (rowsPerTbl > 0) {
|
||||
if (interlaceRows > 0) {
|
||||
insertMode = INTERLACE_INSERT_MODE;
|
||||
} else {
|
||||
insertMode = PROGRESSIVE_INSERT_MODE;
|
||||
}
|
||||
|
||||
// rows per table need be less than insert batch
|
||||
if (rowsPerTbl > g_args.num_of_RPR)
|
||||
rowsPerTbl = g_args.num_of_RPR;
|
||||
if (interlaceRows > g_args.num_of_RPR)
|
||||
interlaceRows = g_args.num_of_RPR;
|
||||
|
||||
pThreadInfo->totalInsertRows = 0;
|
||||
pThreadInfo->totalAffectedRows = 0;
|
||||
|
@ -4510,13 +4546,13 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
|
|||
|
||||
assert(pThreadInfo->ntables > 0);
|
||||
|
||||
if (rowsPerTbl > g_args.num_of_RPR)
|
||||
rowsPerTbl = g_args.num_of_RPR;
|
||||
if (interlaceRows > g_args.num_of_RPR)
|
||||
interlaceRows = g_args.num_of_RPR;
|
||||
|
||||
batchPerTbl = rowsPerTbl;
|
||||
if ((rowsPerTbl > 0) && (pThreadInfo->ntables > 1)) {
|
||||
batchPerTbl = interlaceRows;
|
||||
if ((interlaceRows > 0) && (pThreadInfo->ntables > 1)) {
|
||||
batchPerTblTimes =
|
||||
(g_args.num_of_RPR / (rowsPerTbl * pThreadInfo->ntables)) + 1;
|
||||
(g_args.num_of_RPR / (interlaceRows * pThreadInfo->ntables)) + 1;
|
||||
} else {
|
||||
batchPerTblTimes = 1;
|
||||
}
|
||||
|
@ -4797,9 +4833,9 @@ static void* syncWrite(void *sarg) {
|
|||
threadInfo *winfo = (threadInfo *)sarg;
|
||||
SSuperTable* superTblInfo = winfo->superTblInfo;
|
||||
|
||||
int rowsPerTbl = superTblInfo?superTblInfo->rowsPerTbl:g_args.interlace_rows;
|
||||
int interlaceRows = superTblInfo?superTblInfo->interlaceRows:g_args.interlace_rows;
|
||||
|
||||
if (rowsPerTbl > 0) {
|
||||
if (interlaceRows > 0) {
|
||||
// interlace mode
|
||||
return syncWriteInterlace(winfo);
|
||||
} else {
|
||||
|
@ -4941,7 +4977,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
|
|||
} else if (0 == strncasecmp(precision, "us", 2)) {
|
||||
timePrec = TSDB_TIME_PRECISION_MICRO;
|
||||
} else {
|
||||
errorPrint( "No support precision: %s\n", precision);
|
||||
errorPrint("Not support precision: %s\n", precision);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
@ -4976,7 +5012,8 @@ static void startMultiThreadInsertData(int threads, char* db_name,
|
|||
if ((superTblInfo) && (0 == strncasecmp(superTblInfo->dataSource,
|
||||
"sample", strlen("sample")))) {
|
||||
if (0 != prepareSampleDataForSTable(superTblInfo)) {
|
||||
errorPrint("%s() LN%d, prepare sample data for stable failed!\n", __func__, __LINE__);
|
||||
errorPrint("%s() LN%d, prepare sample data for stable failed!\n",
|
||||
__func__, __LINE__);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
@ -4985,7 +5022,8 @@ static void startMultiThreadInsertData(int threads, char* db_name,
|
|||
if ((superTblInfo) && (0 == strncasecmp(superTblInfo->dataSource,
|
||||
"sample", strlen("sample")))) {
|
||||
if (0 != prepareSampleDataForSTable(superTblInfo)) {
|
||||
errorPrint("%s() LN%d, prepare sample data for stable failed!\n", __func__, __LINE__);
|
||||
errorPrint("%s() LN%d, prepare sample data for stable failed!\n",
|
||||
__func__, __LINE__);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
@ -5045,7 +5083,8 @@ static void startMultiThreadInsertData(int threads, char* db_name,
|
|||
g_Dbs.host, g_Dbs.user,
|
||||
g_Dbs.password, db_name, g_Dbs.port);
|
||||
if (NULL == t_info->taos) {
|
||||
errorPrint( "connect to server fail from insert sub thread, reason: %s\n",
|
||||
errorPrint(
|
||||
"connect to server fail from insert sub thread, reason: %s\n",
|
||||
taos_errstr(NULL));
|
||||
exit(-1);
|
||||
}
|
||||
|
@ -5187,7 +5226,8 @@ static void *readTable(void *sarg) {
|
|||
double totalT = 0;
|
||||
int count = 0;
|
||||
for (int i = 0; i < num_of_tables; i++) {
|
||||
sprintf(command, "select %s from %s%d where ts>= %" PRId64, aggreFunc[j], tb_prefix, i, sTime);
|
||||
sprintf(command, "select %s from %s%d where ts>= %" PRId64,
|
||||
aggreFunc[j], tb_prefix, i, sTime);
|
||||
|
||||
double t = getCurrentTime();
|
||||
TAOS_RES *pSql = taos_query(taos, command);
|
||||
|
@ -5340,10 +5380,10 @@ static int insertTestProcess() {
|
|||
|
||||
if (g_totalChildTables > 0) {
|
||||
printf("Spent %.4f seconds to create %d tables with %d thread(s)\n\n",
|
||||
end - start, g_totalChildTables, g_Dbs.threadCount);
|
||||
end - start, g_totalChildTables, g_Dbs.threadCountByCreateTbl);
|
||||
fprintf(g_fpOfInsertResult,
|
||||
"Spent %.4f seconds to create %d tables with %d thread(s)\n\n",
|
||||
end - start, g_totalChildTables, g_Dbs.threadCount);
|
||||
end - start, g_totalChildTables, g_Dbs.threadCountByCreateTbl);
|
||||
}
|
||||
|
||||
taosMsleep(1000);
|
||||
|
@ -5394,7 +5434,10 @@ static void *superQueryProcess(void *sarg) {
|
|||
|
||||
int64_t st = 0;
|
||||
int64_t et = 0;
|
||||
while (1) {
|
||||
|
||||
int queryTimes = g_args.query_times;
|
||||
|
||||
while(queryTimes --) {
|
||||
if (g_queryInfo.superQueryInfo.rate && (et - st) <
|
||||
(int64_t)g_queryInfo.superQueryInfo.rate*1000) {
|
||||
taosMsleep(g_queryInfo.superQueryInfo.rate*1000 - (et - st)); // ms
|
||||
|
@ -5509,7 +5552,8 @@ static int queryTestProcess() {
|
|||
NULL,
|
||||
g_queryInfo.port);
|
||||
if (taos == NULL) {
|
||||
errorPrint( "Failed to connect to TDengine, reason:%s\n", taos_errstr(NULL));
|
||||
errorPrint( "Failed to connect to TDengine, reason:%s\n",
|
||||
taos_errstr(NULL));
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
@ -5830,7 +5874,8 @@ static int subscribeTestProcess() {
|
|||
g_queryInfo.dbName,
|
||||
g_queryInfo.port);
|
||||
if (taos == NULL) {
|
||||
errorPrint( "Failed to connect to TDengine, reason:%s\n", taos_errstr(NULL));
|
||||
errorPrint( "Failed to connect to TDengine, reason:%s\n",
|
||||
taos_errstr(NULL));
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
@ -6004,7 +6049,7 @@ static void setParaFromArg(){
|
|||
tstrncpy(g_Dbs.db[0].superTbls[0].sTblName, "meters", MAX_TB_NAME_SIZE);
|
||||
g_Dbs.db[0].superTbls[0].childTblCount = g_args.num_of_tables;
|
||||
g_Dbs.threadCount = g_args.num_of_threads;
|
||||
g_Dbs.threadCountByCreateTbl = 1;
|
||||
g_Dbs.threadCountByCreateTbl = g_args.num_of_threads;
|
||||
g_Dbs.queryMode = g_args.mode;
|
||||
|
||||
g_Dbs.db[0].superTbls[0].autoCreateTable = PRE_CREATE_SUBTBL;
|
||||
|
@ -6052,7 +6097,7 @@ static void setParaFromArg(){
|
|||
g_Dbs.db[0].superTbls[0].tags[1].dataLen = g_args.len_of_binary;
|
||||
g_Dbs.db[0].superTbls[0].tagCount = 2;
|
||||
} else {
|
||||
g_Dbs.threadCountByCreateTbl = 1;
|
||||
g_Dbs.threadCountByCreateTbl = g_args.num_of_threads;
|
||||
g_Dbs.db[0].superTbls[0].tagCount = 0;
|
||||
}
|
||||
|
||||
|
@ -6200,7 +6245,8 @@ static void queryResult() {
|
|||
g_Dbs.db[0].dbName,
|
||||
g_Dbs.port);
|
||||
if (rInfo->taos == NULL) {
|
||||
errorPrint( "Failed to connect to TDengine, reason:%s\n", taos_errstr(NULL));
|
||||
errorPrint( "Failed to connect to TDengine, reason:%s\n",
|
||||
taos_errstr(NULL));
|
||||
free(rInfo);
|
||||
exit(-1);
|
||||
}
|
||||
|
|
|
@ -1017,6 +1017,13 @@ static SRpcConn *rpcProcessMsgHead(SRpcInfo *pRpc, SRecvInfo *pRecv, SRpcReqCont
|
|||
return pConn;
|
||||
}
|
||||
|
||||
static void doRpcReportBrokenLinkToServer(void *param, void *id) {
|
||||
SRpcMsg *pRpcMsg = (SRpcMsg *)(param);
|
||||
SRpcConn *pConn = (SRpcConn *)(pRpcMsg->handle);
|
||||
SRpcInfo *pRpc = pConn->pRpc;
|
||||
(*(pRpc->cfp))(pRpcMsg, NULL);
|
||||
free(pRpcMsg);
|
||||
}
|
||||
static void rpcReportBrokenLinkToServer(SRpcConn *pConn) {
|
||||
SRpcInfo *pRpc = pConn->pRpc;
|
||||
if (pConn->pReqMsg == NULL) return;
|
||||
|
@ -1025,16 +1032,20 @@ static void rpcReportBrokenLinkToServer(SRpcConn *pConn) {
|
|||
rpcAddRef(pRpc);
|
||||
tDebug("%s, notify the server app, connection is gone", pConn->info);
|
||||
|
||||
SRpcMsg rpcMsg;
|
||||
rpcMsg.pCont = pConn->pReqMsg; // pReqMsg is re-used to store the APP context from server
|
||||
rpcMsg.contLen = pConn->reqMsgLen; // reqMsgLen is re-used to store the APP context length
|
||||
rpcMsg.ahandle = pConn->ahandle;
|
||||
rpcMsg.handle = pConn;
|
||||
rpcMsg.msgType = pConn->inType;
|
||||
rpcMsg.code = TSDB_CODE_RPC_NETWORK_UNAVAIL;
|
||||
SRpcMsg *rpcMsg = malloc(sizeof(SRpcMsg));
|
||||
rpcMsg->pCont = pConn->pReqMsg; // pReqMsg is re-used to store the APP context from server
|
||||
rpcMsg->contLen = pConn->reqMsgLen; // reqMsgLen is re-used to store the APP context length
|
||||
rpcMsg->ahandle = pConn->ahandle;
|
||||
rpcMsg->handle = pConn;
|
||||
rpcMsg->msgType = pConn->inType;
|
||||
rpcMsg->code = TSDB_CODE_RPC_NETWORK_UNAVAIL;
|
||||
pConn->pReqMsg = NULL;
|
||||
pConn->reqMsgLen = 0;
|
||||
if (pRpc->cfp) (*(pRpc->cfp))(&rpcMsg, NULL);
|
||||
if (pRpc->cfp) {
|
||||
taosTmrStart(doRpcReportBrokenLinkToServer, 0, rpcMsg, pRpc->tmrCtrl);
|
||||
} else {
|
||||
free(rpcMsg);
|
||||
}
|
||||
}
|
||||
|
||||
static void rpcProcessBrokenLink(SRpcConn *pConn) {
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#define TSDB_MAX_SUBBLOCKS 8
|
||||
static FORCE_INLINE int TSDB_KEY_FID(TSKEY key, int32_t days, int8_t precision) {
|
||||
if (key < 0) {
|
||||
return (int)(-((-key) / tsMsPerDay[precision] / days + 1));
|
||||
return (int)((key + 1) / tsMsPerDay[precision] / days + 1);
|
||||
} else {
|
||||
return (int)((key / tsMsPerDay[precision] / days));
|
||||
}
|
||||
|
|
|
@ -56,14 +56,8 @@ pipeline {
|
|||
cd ${WKC}/tests
|
||||
./test-all.sh b1
|
||||
date'''
|
||||
sh '''
|
||||
cd ${WKC}/tests
|
||||
./test-all.sh full jdbc
|
||||
date'''
|
||||
sh '''
|
||||
cd ${WKC}/tests
|
||||
./test-all.sh full unit
|
||||
date'''
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -136,6 +130,10 @@ pipeline {
|
|||
./test-all.sh b2
|
||||
date
|
||||
'''
|
||||
sh '''
|
||||
cd ${WKC}/tests
|
||||
./test-all.sh full unit
|
||||
date'''
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -154,6 +152,10 @@ pipeline {
|
|||
'''
|
||||
}
|
||||
sh '''
|
||||
cd ${WKC}/tests
|
||||
./test-all.sh full jdbc
|
||||
date'''
|
||||
sh '''
|
||||
cd ${WKC}/tests/pytest
|
||||
./valgrind-test.sh 2>&1 > mem-error-out.log
|
||||
./handle_val_log.sh
|
||||
|
|
|
@ -29,7 +29,25 @@ function dohavecore(){
|
|||
proc=`echo $corefile|cut -d "_" -f3`
|
||||
if [ -n "$corefile" ];then
|
||||
echo 'taosd or taos has generated core'
|
||||
tar -zcPf $corepath'taos_'`date "+%Y_%m_%d_%H_%M_%S"`.tar.gz /usr/local/taos/
|
||||
if [[ "$tests_dir" == *"$IN_TDINTERNAL"* ]] && [[ $1 == 1 ]]; then
|
||||
cd ../../../
|
||||
tar -zcPf $corepath'taos_'`date "+%Y_%m_%d_%H_%M_%S"`.tar.gz debug/build/bin/taosd debug/build/bin/tsim debug/build/lib/libtaos*so*
|
||||
if [[ $2 == 1 ]];then
|
||||
cp -r sim ~/sim_`date "+%Y_%m_%d_%H:%M:%S"`
|
||||
rm -rf sim/case.log
|
||||
else
|
||||
cd community
|
||||
cp -r sim ~/sim_`date "+%Y_%m_%d_%H:%M:%S" `
|
||||
rm -rf sim/case.log
|
||||
fi
|
||||
else
|
||||
cd ../../
|
||||
if [[ $1 == 1 ]];then
|
||||
tar -zcPf $corepath'taos_'`date "+%Y_%m_%d_%H_%M_%S"`.tar.gz debug/build/bin/taosd debug/build/bin/tsim debug/build/lib/libtaos*so*
|
||||
cp -r sim ~/sim_`date "+%Y_%m_%d_%H:%M:%S" `
|
||||
rm -rf sim/case.log
|
||||
fi
|
||||
fi
|
||||
if [[ $1 == 1 ]];then
|
||||
echo '\n'|gdb /usr/local/taos/bin/$proc $core_file -ex "bt 10" -ex quit
|
||||
exit 8
|
||||
|
@ -100,14 +118,14 @@ function runSimCaseOneByOnefq {
|
|||
cp -r ../../sim ~/sim_`date "+%Y_%m_%d_%H:%M:%S" `
|
||||
rm -rf ../../sim/case.log
|
||||
fi
|
||||
dohavecore $2
|
||||
dohavecore $2 1
|
||||
if [[ $2 == 1 ]];then
|
||||
exit 8
|
||||
fi
|
||||
fi
|
||||
end_time=`date +%s`
|
||||
echo execution time of $case was `expr $end_time - $start_time`s. | tee -a out.log
|
||||
dohavecore $2
|
||||
dohavecore $2 1
|
||||
fi
|
||||
done
|
||||
rm -rf ../../../sim/case.log
|
||||
|
@ -175,7 +193,7 @@ function runPyCaseOneByOnefq() {
|
|||
echo '=====================log===================== '
|
||||
cat ../../sim/case.log
|
||||
rm -rf ../../sim/case.log
|
||||
dohavecore $2
|
||||
dohavecore $2 2
|
||||
if [[ $2 == 1 ]];then
|
||||
exit 8
|
||||
fi
|
||||
|
@ -184,7 +202,7 @@ function runPyCaseOneByOnefq() {
|
|||
else
|
||||
$line > /dev/null 2>&1
|
||||
fi
|
||||
dohavecore $2
|
||||
dohavecore $2 2
|
||||
fi
|
||||
done
|
||||
rm -rf ../../sim/case.log
|
||||
|
|
Loading…
Reference in New Issue