diff --git a/CMakeLists.txt b/CMakeLists.txt index 681559a37bee3ad4e4ac92e43785c8dfedd2f996..1b8a3f9a1ca62a2d9db7dabff977e5f322c9d722 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,7 @@ if(${BUILD_TEST}) endif(${BUILD_TEST}) add_subdirectory(source) add_subdirectory(tools) +add_subdirectory(tests) # docs add_subdirectory(docs) diff --git a/tests/tsim/CMakeLists.txt b/tests/tsim/CMakeLists.txt index 9d44738e3edab76eafa41e0b1f82e3854dc7db76..81737809d900a8931be71b4b7c605c9f18627d32 100644 --- a/tests/tsim/CMakeLists.txt +++ b/tests/tsim/CMakeLists.txt @@ -6,7 +6,7 @@ target_link_libraries( PUBLIC util PUBLIC common PUBLIC os - PUBLIC cJson + PUBLIC cjson ) target_include_directories( tsim diff --git a/tests/tsim/inc/sim.h b/tests/tsim/inc/sim.h index 39c6f6ac36a80ecf14b0f5a1029f3ef2ce75082e..4cb08d6401223ea88e24736fbd012bc58bcb0e5d 100644 --- a/tests/tsim/inc/sim.h +++ b/tests/tsim/inc/sim.h @@ -13,8 +13,8 @@ * along with this program. If not, see . */ -#ifndef __SIM_H__ -#define __SIM_H__ +#ifndef _TD_SIM_H_ +#define _TD_SIM_H_ #include #include @@ -150,7 +150,6 @@ extern int32_t simScriptPos; extern int32_t simScriptSucced; extern int32_t simDebugFlag; extern char tsScriptDir[]; -extern bool simAsyncQuery; extern bool abortExecution; SScript *simParseScript(char *fileName); @@ -178,4 +177,4 @@ bool simExecuteLineInsertCmd(SScript *script, char *option); bool simExecuteLineInsertErrorCmd(SScript *script, char *option); void simVisuallizeOption(SScript *script, char *src, char *dst); -#endif \ No newline at end of file +#endif /*_TD_SIM_H_*/ \ No newline at end of file diff --git a/tests/tsim/inc/simParse.h b/tests/tsim/inc/simParse.h index ef7d8e5ce72cc9bf0ae52380089d36576e84bd28..addd74bf80044ae20a995c3d3fe04d45650d3b67 100644 --- a/tests/tsim/inc/simParse.h +++ b/tests/tsim/inc/simParse.h @@ -13,8 +13,8 @@ * along with this program. If not, see . */ -#ifndef __SIM_PARSE_H__ -#define __SIM_PARSE_H__ +#ifndef _TD_SIM_PARSE_H_ +#define _TD_SIM_PARSE_H_ #define MAX_NUM_CMD 64 #define MAX_NUM_LABLES 100 @@ -52,4 +52,4 @@ typedef struct { bool simParseExpression(char *token, int32_t lineNum); -#endif \ No newline at end of file +#endif /*_TD_SIM_PARSE_H_*/ \ No newline at end of file diff --git a/tests/tsim/src/simExe.c b/tests/tsim/src/simExe.c index 7a75dd7d8579537b8778819ec4b43086bdc28dc1..4f6456440425472f8119f3288a473368b5259a21 100644 --- a/tests/tsim/src/simExe.c +++ b/tests/tsim/src/simExe.c @@ -14,14 +14,14 @@ */ #define _DEFAULT_SOURCE -#include "../../../include/client/taos.h" +#include "taos.h" #include "cJSON.h" #include "os.h" #include "sim.h" #include "taoserror.h" #include "tglobal.h" #include "tutil.h" -#undef TAOS_MEM_CHECK +#include "ttypes.h" void simLogSql(char *sql, bool useSharp) { static FILE *fp = NULL; @@ -466,10 +466,6 @@ void simVisuallizeOption(SScript *script, char *src, char *dst) { strcpy(dst + dstLen, src); } -void simCloseRestFulConnect(SScript *script) { - memset(script->auth, 0, sizeof(script->auth)); -} - void simCloseNativeConnect(SScript *script) { if (script->taos == NULL) return; @@ -480,166 +476,7 @@ void simCloseNativeConnect(SScript *script) { } void simCloseTaosdConnect(SScript *script) { - if (simAsyncQuery) { - simCloseRestFulConnect(script); - } else { - simCloseNativeConnect(script); - } -} -// {"status":"succ","code":0,"desc":"/KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04"} -// {"status":"succ","head":["affected_rows"],"data":[[1]],"rows":1} -// {"status":"succ","head":["ts","i"],"data":[["2017-12-25 21:28:41.022",1],["2017-12-25 21:28:42.022",2],["2017-12-25 21:28:43.022",3],["2017-12-25 21:28:44.022",4],["2017-12-25 21:28:45.022",5],["2017-12-25 21:28:46.022",6],["2017-12-25 21:28:47.022",7],["2017-12-25 21:28:48.022",8],["2017-12-25 21:28:49.022",9],["2017-12-25 21:28:50.022",10]],"rows":10} -int32_t simParseHttpCommandResult(SScript *script, char *command) { - cJSON* root = cJSON_Parse(command); - if (root == NULL) { - simError("script:%s, failed to parse json, response:%s", script->fileName, command); - return -1; - } - - cJSON *status = cJSON_GetObjectItem(root, "status"); - if (status == NULL) { - simError("script:%s, failed to parse json, status is null, response:%s", script->fileName, command); - cJSON_Delete(root); - return -1; - } - - if (status->valuestring == NULL || strlen(status->valuestring) == 0) { - simError("script:%s, failed to parse json, status value is null, response:%s", script->fileName, command); - cJSON_Delete(root); - return -1; - } - - if (strcmp(status->valuestring, "succ") != 0) { - cJSON *code = cJSON_GetObjectItem(root, "code"); - if (code == NULL) { - simError("script:%s, failed to parse json, code is null, response:%s", script->fileName, command); - cJSON_Delete(root); - return -1; - } - int32_t retcode = (int32_t)code->valueint; - if (retcode != 1017) { - simError("script:%s, json:status:%s not equal to succ, response:%s", script->fileName, status->valuestring, - command); - cJSON_Delete(root); - return retcode; - } else { - simDebug("script:%s, json:status:%s not equal to succ, but code is %d, response:%s", script->fileName, - status->valuestring, retcode, command); - cJSON_Delete(root); - return 0; - } - } - - cJSON *desc = cJSON_GetObjectItem(root, "desc"); - if (desc != NULL) { - if (desc->valuestring == NULL || strlen(desc->valuestring) == 0) { - simError("script:%s, failed to parse json, desc value is null, response:%s", script->fileName, command); - cJSON_Delete(root); - return -1; - } - strcpy(script->auth, desc->valuestring); - cJSON_Delete(root); - return 0; - } - - cJSON *data = cJSON_GetObjectItem(root, "data"); - if (data == NULL) { - simError("script:%s, failed to parse json, data is null, response:%s", script->fileName, command); - cJSON_Delete(root); - return -1; - } - - int32_t rowsize = cJSON_GetArraySize(data); - if (rowsize < 0) { - simError("script:%s, failed to parse json:data, data size %d, response:%s", script->fileName, rowsize, command); - cJSON_Delete(root); - return -1; - } - - int32_t rowIndex = 0; - sprintf(script->rows, "%d", rowsize); - for (int32_t r = 0; r < rowsize; ++r) { - cJSON *row = cJSON_GetArrayItem(data, r); - if (row == NULL) continue; - if (rowIndex++ >= 10) break; - - int32_t colsize = cJSON_GetArraySize(row); - if (colsize < 0) { - break; - } - - colsize = MIN(10, colsize); - for (int32_t c = 0; c < colsize; ++c) { - cJSON *col = cJSON_GetArrayItem(row, c); - if (col->valuestring != NULL) { - strcpy(script->data[r][c], col->valuestring); - } else { - if (col->numberstring[0] == 0) { - strcpy(script->data[r][c], "null"); - } else { - strcpy(script->data[r][c], col->numberstring); - } - } - } - } - - return 0; -} - -int32_t simExecuteRestFulCommand(SScript *script, char *command) { - char buf[5000] = {0}; - sprintf(buf, "%s 2>/dev/null", command); - - FILE *fp = popen(buf, "r"); - if (fp == NULL) { - simError("failed to execute %s", buf); - return -1; - } - - int32_t mallocSize = 2000; - int32_t alreadyReadSize = 0; - char * content = malloc(mallocSize); - - while (!feof(fp)) { - int32_t availSize = mallocSize - alreadyReadSize; - int32_t len = (int32_t)fread(content + alreadyReadSize, 1, availSize, fp); - if (len >= availSize) { - alreadyReadSize += len; - mallocSize *= 2; - content = realloc(content, mallocSize); - } - } - - pclose(fp); - - return simParseHttpCommandResult(script, content); -} - -bool simCreateRestFulConnect(SScript *script, char *user, char *pass) { - char command[4096]; - sprintf(command, "curl 127.0.0.1:6041/rest/login/%s/%s", user, pass); - - bool success = false; - for (int32_t attempt = 0; attempt < 10; ++attempt) { - success = simExecuteRestFulCommand(script, command) == 0; - if (!success) { - simDebug("script:%s, user:%s connect taosd failed:%s, attempt:%d", script->fileName, user, taos_errstr(NULL), - attempt); - taosMsleep(1000); - } else { - simDebug("script:%s, user:%s connect taosd successed, attempt:%d", script->fileName, user, attempt); - break; - } - } - - if (!success) { - sprintf(script->error, "lineNum:%d. connect taosd failed:%s", script->lines[script->linePos].lineNum, - taos_errstr(NULL)); - return false; - } - - simDebug("script:%s, connect taosd successed, auth:%p", script->fileName, script->auth); - return true; + simCloseNativeConnect(script); } bool simCreateNativeConnect(SScript *script, char *user, char *pass) { @@ -651,7 +488,7 @@ bool simCreateNativeConnect(SScript *script, char *user, char *pass) { return false; } - taos = taos_connect(NULL, user, pass, NULL, tsDnodeShellPort); + taos = taos_connect(NULL, user, pass, NULL, 0); if (taos == NULL) { simDebug("script:%s, user:%s connect taosd failed:%s, attempt:%d", script->fileName, user, taos_errstr(NULL), attempt); @@ -684,11 +521,7 @@ bool simCreateTaosdConnect(SScript *script, char *rest) { user = token; } - if (simAsyncQuery) { - return simCreateRestFulConnect(script, user, TSDB_DEFAULT_PASS); - } else { - return simCreateNativeConnect(script, user, TSDB_DEFAULT_PASS); - } + return simCreateNativeConnect(script, user, TSDB_DEFAULT_PASS); } bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) { @@ -710,7 +543,7 @@ bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) { pSql = taos_query(script->taos, rest); ret = taos_errno(pSql); - if (ret == TSDB_CODE_MND_TABLE_ALREADY_EXIST || ret == TSDB_CODE_MND_DB_ALREADY_EXIST) { + if (ret == TSDB_CODE_MND_STB_ALREADY_EXIST || ret == TSDB_CODE_MND_DB_ALREADY_EXIST) { simDebug("script:%s, taos:%p, %s success, ret:%d:%s", script->fileName, script->taos, rest, ret & 0XFFFF, tstrerror(ret)); ret = 0; @@ -877,41 +710,6 @@ bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) { return true; } -bool simExecuteRestFulSqlCommand(SScript *script, char *rest) { - SCmdLine *line = &script->lines[script->linePos]; - char command[4096]; - sprintf(command, "curl -H 'Authorization: Taosd %s' -d \"%s\" 127.0.0.1:6041/rest/sql", script->auth, rest); - - int32_t ret = -1; - for (int32_t attempt = 0; attempt < 10; ++attempt) { - ret = simExecuteRestFulCommand(script, command); - if (ret == TSDB_CODE_MND_TABLE_ALREADY_EXIST || ret == TSDB_CODE_MND_DB_ALREADY_EXIST) { - simDebug("script:%s, taos:%p, %s success, ret:%d:%s", script->fileName, script->taos, rest, ret & 0XFFFF, - tstrerror(ret)); - ret = 0; - break; - } else if (ret != 0) { - simDebug("script:%s, taos:%p, %s failed, ret:%d", script->fileName, script->taos, rest, ret); - - if (line->errorJump == SQL_JUMP_TRUE) { - script->linePos = line->jump; - return true; - } - taosMsleep(1000); - } else { - break; - } - } - - if (ret) { - sprintf(script->error, "lineNum:%d. sql:%s failed, ret:%d", line->lineNum, rest, ret); - return false; - } - - script->linePos++; - return true; -} - bool simExecuteSqlImpCmd(SScript *script, char *rest, bool isSlow) { char buf[3000]; SCmdLine *line = &script->lines[script->linePos]; @@ -935,7 +733,7 @@ bool simExecuteSqlImpCmd(SScript *script, char *rest, bool isSlow) { return true; } - if ((!simAsyncQuery && script->taos == NULL) || (simAsyncQuery && script->auth[0] == 0)) { + if (script->taos == NULL) { if (!simCreateTaosdConnect(script, "connect root")) { if (line->errorJump == SQL_JUMP_TRUE) { script->linePos = line->jump; @@ -951,11 +749,7 @@ bool simExecuteSqlImpCmd(SScript *script, char *rest, bool isSlow) { return true; } - if (simAsyncQuery) { - return simExecuteRestFulSqlCommand(script, rest); - } else { - return simExecuteNativeSqlCommand(script, rest, isSlow); - } + return simExecuteNativeSqlCommand(script, rest, isSlow); } bool simExecuteSqlCmd(SScript *script, char *rest) { @@ -1009,6 +803,7 @@ bool simExecuteRestfulCmd(SScript *script, char *rest) { return simExecuteSystemCmd(script, cmd); } + bool simExecuteSqlErrorCmd(SScript *script, char *rest) { char buf[3000]; SCmdLine *line = &script->lines[script->linePos]; @@ -1032,7 +827,7 @@ bool simExecuteSqlErrorCmd(SScript *script, char *rest) { return true; } - if ((!simAsyncQuery && script->taos == NULL) || (simAsyncQuery && script->auth[0] == 0)) { + if (script->taos == NULL) { if (!simCreateTaosdConnect(script, "connect root")) { if (line->errorJump == SQL_JUMP_TRUE) { script->linePos = line->jump; @@ -1048,17 +843,9 @@ bool simExecuteSqlErrorCmd(SScript *script, char *rest) { return true; } - int32_t ret; - TAOS_RES *pSql = NULL; - if (simAsyncQuery) { - char command[4096]; - sprintf(command, "curl -H 'Authorization: Taosd %s' -d '%s' 127.0.0.1:6041/rest/sql", script->auth, rest); - ret = simExecuteRestFulCommand(script, command); - } else { - pSql = taos_query(script->taos, rest); - ret = taos_errno(pSql); - taos_free_result(pSql); - } + TAOS_RES *pSql = pSql = taos_query(script->taos, rest); + int32_t ret = taos_errno(pSql); + taos_free_result(pSql); if (ret != TSDB_CODE_SUCCESS) { simDebug("script:%s, taos:%p, %s execute, expect failed, so success, ret:%d:%s", script->fileName, script->taos, @@ -1084,7 +871,11 @@ bool simExecuteLineInsertCmd(SScript *script, char *rest) { simInfo("script:%s, %s", script->fileName, rest); simLogSql(buf, true); char * lines[] = {rest}; +#if 0 int32_t ret = taos_insert_lines(script->taos, lines, 1); +#else + int32_t ret = 0; +#endif if (ret == TSDB_CODE_SUCCESS) { simDebug("script:%s, taos:%p, %s executed. success.", script->fileName, script->taos, rest); script->linePos++; @@ -1107,7 +898,11 @@ bool simExecuteLineInsertErrorCmd(SScript *script, char *rest) { simInfo("script:%s, %s", script->fileName, rest); simLogSql(buf, true); char * lines[] = {rest}; +#if 0 int32_t ret = taos_insert_lines(script->taos, lines, 1); +#else + int32_t ret = 0; +#endif if (ret == TSDB_CODE_SUCCESS) { sprintf(script->error, "script:%s, taos:%p, %s executed. expect failed, but success.", script->fileName, script->taos, rest); script->linePos++; diff --git a/tests/tsim/src/simMain.c b/tests/tsim/src/simMain.c index 7d74c62c7daf391fed1bf1afac233f51b84c8f0b..438bd4191037621236944d68b41555a7c0ed98b8 100644 --- a/tests/tsim/src/simMain.c +++ b/tests/tsim/src/simMain.c @@ -17,9 +17,7 @@ #include "os.h" #include "tglobal.h" #include "sim.h" -#undef TAOS_MEM_CHECK -bool simAsyncQuery = false; bool simExecSuccess = false; bool abortExecution = false; @@ -38,8 +36,6 @@ int32_t main(int32_t argc, char *argv[]) { tstrncpy(configDir, argv[++i], 128); } else if (strcmp(argv[i], "-f") == 0 && i < argc - 1) { strcpy(scriptFile, argv[++i]); - } else if (strcmp(argv[i], "-a") == 0) { - simAsyncQuery = true; } else { printf("usage: %s [options] \n", argv[0]); printf(" [-c config]: config directory, default is: %s\n", configDir); diff --git a/tests/tsim/src/simParse.c b/tests/tsim/src/simParse.c index 1acdcd2ac6eb0ecb66e2977dee7577393ed242ef..246d0d3829d7e18d4386c6a6580d6470290f2597 100644 --- a/tests/tsim/src/simParse.c +++ b/tests/tsim/src/simParse.c @@ -62,7 +62,6 @@ #include "sim.h" #include "simParse.h" #include "tutil.h" -#undef TAOS_MEM_CHECK static SCommand *cmdHashList[MAX_NUM_CMD]; static SCmdLine cmdLine[MAX_CMD_LINES]; diff --git a/tests/tsim/src/simSystem.c b/tests/tsim/src/simSystem.c index 65612930ef3288cd260a795a6f4f037559457593..283e84c7a8592482973bd6ed3494c0bc013cb208 100644 --- a/tests/tsim/src/simSystem.c +++ b/tests/tsim/src/simSystem.c @@ -14,15 +14,13 @@ */ #define _DEFAULT_SOURCE -#include "../../../include/client/taos.h" +#include "taos.h" #include "os.h" #include "sim.h" #include "taoserror.h" #include "tglobal.h" -#include "tsocket.h" #include "ttimer.h" #include "tutil.h" -#undef TAOS_MEM_CHECK SScript *simScriptList[MAX_MAIN_SCRIPT_NUM]; SCommand simCmdList[SIM_CMD_END]; @@ -81,9 +79,6 @@ char *simParseHostName(char *varName) { } bool simSystemInit() { - if (taos_init()) { - return false; - } taosGetFqdn(simHostName); simInitsimCmdList(); memset(simScriptList, 0, sizeof(SScript *) * MAX_MAIN_SCRIPT_NUM); diff --git a/tools/shell/inc/shellCommand.h b/tools/shell/inc/shellCommand.h index 6e4d3e382e3d7e8c50405c07da8ed73725230434..49f7dc01331e810864f87bd5b65fb13815fc7719 100644 --- a/tools/shell/inc/shellCommand.h +++ b/tools/shell/inc/shellCommand.h @@ -13,8 +13,8 @@ * along with this program. If not, see . */ -#ifndef __COMMAND_STRUCT__ -#define __COMMAND_STRUCT__ +#ifndef _TD_SHELL_COMMAND_H_ +#define _TD_SHELL_COMMAND_H_ #include "shell.h"