mirror of
https://github.com/taosdata/TDengine
synced 2026-05-24 10:09:01 +00:00
* chore(ci): with cmake verbose, temporarily
* chore(cmake): prefer Threads::Threads
* fix(cmake): debug building gtest on ubuntu 20.04 for the moment
* fix(cmake): try adding Threads::Threads
* fix(cmake): debug building gtest on ubuntu 20.04 for the moment
* fix(cmake): revert taosd-ci-build.yml
* fix(cmake): debug building on ubuntu 20.04 for the moment
* fix(cmake): debug building on ubuntu 20.04 for the moment
* fix(cmake): debug building on ubuntu 20.04 for the moment, adding dl right after DEP_ext_libuv
* fix(cmake): debug building on ubuntu 20.04 for the moment, try full run
* fix(cmake): fix building on ubuntu 20.04
* fix(cmake): dl is only valid in non-windows platform
* fix(cmake): dl order
* refactor(cmake): adjust option/cache variables for external dependencies
* refactor(cmake): mv patch files from contrib/ to cmake/
* refactor(cmake): typo
* refactor(cmake): adding cache on ci
* refactor(cmake):
1. ext_lzma2 is only used by Linux
2. fix bug in taosd-ci-build.yml
* enh: adding functionalities of build.sh
* fix(ci): `cmake -B` shall maintain consistency
* refactor(cmake): LOCAL_REPO/LOCAL_URL as cache variable
* refactor(cmake): taosadapter to be built in main build directory rather than .externals
* refactor(cmake): adding rpath for taosadapter, linux now
* refactor(cmake): adding rpath for taosadapter, macos now
* chore(cmake): remove some comments
* debug(ci): bypass TD_EXTERNALS_USE_ONLY
* debug(ci): bypass .externals caching for the moment
* fix(cmake): temporarily use taosadapter/main branch because this branch(freemine.cmake.3.0) has not include taos_fetch_fields_e from upstream
* refactor(cmake): clean GIT_TAG/GIT_SHALLOW pairs
* enh(ci): use build.sh rather than hard-coded in taosd-ci-build.yml, linux for now
* debug(ci): undefined __isoc23_strtoull
* debug(ci): benchmarkTest
* debug(ci): what if use_only = off
* debug(ci): remove .externals to make a refresh build
* debug(ci): back to cache, and ls files of gtest
* debug(ci): remove find coz {} not escaped
* debug(ci): cache key seems missing "matrix.os"
* refactor(ci): fixed cache key and reopen macos/windows
* chore(ci): literally -j4
* chore(ci): Trigger GitHub Actions re-run
* chore(ci): Trigger GitHub Actions re-run
* fix(ci): typo
* chore(ci): JOBS calculated by build.sh itself
* refactor(ci): enable WEBSOCKET in build.sh by default
* refactor(ci): enable WEBSOCKET in build.sh by default, macOS
* chore(cmake): remove obsoletes
* refactor(ci): stop service before running taosd
* chore(ci): `./build.sh install` just install TDengine, you will have to start taosd by `./build.sh start`
* refactor(cmake): adding source code found on http://emfisis.physics.uiowa.edu/Software/C/libargp/
* refactor(cmake): moving jansson/snappy/avro to .externals, and porting BUILD_TEST/WEBSOCKET on Windows
* refactor(cmake): porting linux
* refactor(cmake): porting macos
1. check argp.h
2. re-enable building taosdump
* refactor(cmake): porting linux
1. adjust CMAKE_C/CXX_FLAGS
* refactor(cmake): porting windows, adjust CMAKE_C/CXX_FLAGS
* refactor(cmake): use cmake_parse_arguments in macro INIT_EXT
* refactor(cmake): format ci cache directives
* refactor(cmake): adding comments for ci externals-cache directives
* refactor(cmake): adding check_env.cmake to checking libraries installed on the system
* refactor(cmake): porting linux, make homebrew-installed-libs available
* refactor(cmake): remove BYPRODUCTS from INIT_EXT macro
* refactor(cmake): INC_DIR is oneValueArg
* refactor(cmake): taosdump depends on ext_xz(LZMA)
* refactor(cmake): add copy_pthreadVC3 target on windows
* refactor(cmake): mv taosd-ci-build.yml to tdengine-build.yml
* chore(ci): try to fix yml syntax error
* refactor(cmake): use brew --prefix to get HomeBrew's install path
* refactor(cmake): typo
* debug(ci): build and cache externals first
* debug(ci): adding -Wno-stringop-overread for the moment
* debug(ci): make Threads::Threads public from os target
* debug(ci): make os public
* debug(ci): re-enable start and test
* debug(ci): let it go even if taosBenchmark failed
* debug(ci): copy logic from TDengine/main
* debug(ci): try ./build.sh start/test
* debug(ci): revert to original simple test logic in ci, taosBenchark/taos
* chore(cmake): code-convention and ci-logic
* debug(ci): show versions
* debug(ci): forcefully use specific GIT_TAG by commit-id for taos-connector-rust.git and taosadapter.git
* refactor(cmake): remove empty lines
* debug(ci): typo
* debug(ci): set supportVnodes to 256 before starting taosd
* debug(ci): fix: sudo and pipe
* debug(ci): cat /etc/taos/taos.cfg to check if supportVnodes effective
* debug(ci): cat forceReadConfig to taos.cfg
* debug(ci): adding taos -s "show dnodes"
* debug(ci): print more info
* debug(ci):
1. git log .... in an independant step
2. sleep 3 deliberately
* build: release ver-3.3.6.0
* chore(ci): comment and remove unnecessary code
* refactor(ci): cleanup tools/CMakeLists.txt
1. remove unnecessary or uneffective codes
2. better approach to pass compile flags to go
* chore(cmake): remove unnecessary code
* merge(cmake): porting linux
* merge(cmake): porting macOS
* merge(cmake): porting windows
* merge(cmake): pitfall fix: use literal format string instead
* merge(cmake): ver-3.3.6.0 for both taosadatper and taosws
* merge(cmake): adjust ci for debug purposes
* merge(cmake): add dependenices to make sure native built
* merge(main): link os
* merge(main): revert to main
* chore(cmake): remove freemine'd comments
* chore(cmake): make github ci to run with empty change
* refactor(cmake): remove unnecessaries
* refactor(cmake): remove unnecessaries
* chore(cmake):
1. remove taosudf in build.sh::do_purge
2. packaging taosBenchmark
* chore(cmake):
1. typo corrections
2. add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to bypass compatibility check imposed by latest cmake since 4.0
* chore(cmake): show cmake version
* chore(cmake): add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to bypass compatibility check imposed by latest cmake since 4.0
* chore(cmake): typo
* chore(cmake): remove unnecessaries
* cmake: debug enterprise compilation
* refactor: preparatory work before merging the freemin PR
* refactor(cmake): revert to d91205594a
* refactor(cmake): optimize by adjusting cache key
* chore(cmake): make github ci to run with empty change
* refactor(cmake): move libs3 and azure to external.cmake
* refactor(cmake): porting macOS
* refactor(cmake): move cos to external.cmake
* refactor(cmake): bypass s3/azure/cos on windows for the moment
* refactor(cmake): try find_package(Threads)
* refactor(cmake): add dl/pthread in libs3
* refactor(cmake): enable s3/azure for the moment, hard-coded
* refactor(cmake): adjust BUILD_WITH_ANALYSIS option
* refactor(cmake):
1. enum AVROTYPE => enum enAVROTYPE
2. remove INSTALL(CODE ...) from tools/taos-tools/CMakeLists.txt
* refactor(cmake): portint macOS and typo
* refactor(cmake): ticking external cache key to force refresh external building
* refactor(cmake): remove obsoletes
* refactor(cmake): remove obsoletes
* refactor(cmake): remove obsoletes, contrib/deps-download related
* refactor(cmake): adding build.bat, and use build.bat in .github/workflows/tdengine-build.yml
* refactor(cmake):
1. call .\build.bat
2. remove POST_BUILD which is not valid in this signature of add_custom_command
* refactor(ci): use 'NMake Makefiles JOM'
* refactor(ci): typo
* refactor(ci): debug
* refactor(ci): debug
* refactor(ci): debug
* refactor(ci): use call on windows
* refactor(cmake): move utils/TSZ to contrib/TSZ
* chore(cmake): make github ci to run with empty change
* refactor(cmake): mv cmake.* -> *.cmake and related in CMakeLists.txt
* refactor(cmake): debugging integrating community
* refactor(cmake): debugging integrating community
* chore(cmake): make github ci to run with empty change
* refactor(cmake): revert geos.git back to 3.12.0
* refactor(cmake): revert doc/** to main branch
* refactor(cmake): revert tests/** to main branch, except tests/taosc_test/CMakeLists.txt
* refactor(cmake): revert test/cases/** to main branch
* refactor(cmake): revert test/docs/** to main branch
* refactor(cmake): revert tools/taos-tools/deps/{avro,jansson,libargp,snappy,zlib-1.2.13} to main branch, which need to be removed later
* refactor(ci): revert .github/workflows/{deploy-case-docs.yml,tdengine-doc-build.yml} to main branch
* refactor(cmake): revert tcommon.h and related to main branch
* refactor(cmake): revert test/* stuffs back to main branch
* refactor(cmake): revert libuv.git back to v1.49.2
* refactor(cmake): revert .h/.c and related to main branch
* refactor(cmake): typo format string
* refactor(cmake): typo correction, incorrect use of macro `assert`
* refactor(cmake): adding /wd4028 to bypass thttp.c under enterprise build for the moment
* refactor(cmake):
1. adding some rules to .gitignore for the last resort to save
2. adding source files manually to source/libs/parser/CMakeLists.txt to exclude potential sql.c generated by old build system
* refactor(cmake): add -Wno-unused-result for the moment
* refactor(cmake): adjust target dependencies
* refactor(cmake): tweaking building of mxml
* refactor(cmake): adjust externals CMAKE_ARGS to save compilation time
* refactor(cmake): temporarily use tomchon-patch-3
* refactor(cmake): temporarily adding dumpbin directives
* refactor(cmake): adding NODEFAULTLIB temporarily for debugging purpose
* refactor(cmake): adding NODEFAULTLIB:libcpmt temporarily for debugging purpose
* refactor(cmake): adding NODEFAULTLIB:cpmt temporarily for debugging purpose
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* refactor(ci): use freemine.debug branch for the moment
* refactor(ci): revert back to use run-tests-on-windows.yml of tomchon-patch-3 branch
* chore(cmake): make github ci to run with empty change
* refactor(cmake): remove temporary debug directives
* refactor(cmake): move cmake_policy(..CMP0135..) to the root of this project
* refactor(cmake): Remove temporary debugging conditional and restore original logic
* chore(cmake): adding -B in army tests
* chore(cmake): make github ci to run with empty change
* chore(cmake): revert: adding -B in army tests
* refactor(cmake):
1. use ver-3.3.6.3 of taosadapter
2. pitfall fix: do not link with taosws for taos shell
* refactor(cmake): revert taosadapter to ver-3.3.6.0
* chore(cmake): adding logging message in more detail
* chore(cmake): adding logging message in more detail
* chore(ci): debugging by using ls -l
* chore(ci): typo
* chore(ci): typo
* refactor(cmake): revert to remove debug code, and taosadapter to ver-3.3.6.3
* refactor(cmake): remove DEP_ext_taosws
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* chore(cmake): typo correction: utils/test/c/sml_test.c
* debug(cmake): test cases debug
* chore(cmake): make github ci to run with empty change
* chore(ci): using tomchon-patch-3 branch for run-tests-on-linux for the moment
* chore(cmake): make github ci to run with empty change
* debug(test): revert utils/test/c/sml_test.c back to tdengine/main branch
* debug(test): adding VERBOSE=1 and gcc --version
* debug(test): revert tests/parallel_test/cases.task back to tdengine/main branch
* debug: add log in run_case.sh
* fix: test log
* fix: docker run privileged
* tes: add debug test in cases.task
* refactor(cmake): remove ref to \contrib\<dep-name> and ~/.cos-local-{1,2} from CMakeLists.txt(s)
* refactor(cmake): make taosudf link with libtaos.so
* chore(cmake): fix compiler warning as error problem
* refactor(cmake): revert 7d7f03832d
* chore(cmake): only udf.sim and udfpy.sim for the moment
* debug(ci): debug udf.sim for the moment
* debug(ci): debug udf.sim for the moment
* debug(ci): debug udf.sim for the moment
* debug(ci): debug only udf.sim for the moment
* debug(ci): debug only udf.sim for the moment, using tee
* debug(ci): debug only udf.sim for the moment, revert using tee
* debug(ci): debug only udf.sim for the moment, adding TAOS_LIB again
* debug(cmake): adding -rdynamic for the moment
* debug(cmake): re-adding udfpy.sim
* debug(cmake): do NOT run with Sanitizer for udfpy.sim for the moment
* chore(cmake): revert cases.task, and remove ubuntu-20.04 from tdengine-build.yml
* refactor(cmake): using ENABLE_EXPORTS to export symbols in taosudf
* chore(cmake): make github ci to run with empty change
* chore(cmake): remove stuffs for debug purpose and revert
---------
Co-authored-by: support-platform <it@taosdata.com>
Co-authored-by: Simon Guan <slguan@taosdata.com>
Co-authored-by: Simon Guan <guanshengliang@qq.com>
Co-authored-by: haoranchen <haoran920c@163.com>
174 lines
4.3 KiB
C++
174 lines
4.3 KiB
C++
/*
|
|
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
|
*
|
|
* This program is free software: you can use, redistribute, and/or modify
|
|
* it under the terms of the GNU Affero General Public License, version 3
|
|
* or later ("AGPL"), as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include <gtest/gtest.h>
|
|
#include <iostream>
|
|
#include "pub.h"
|
|
#include "bench.h"
|
|
#include "benchLog.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// benchMain.c global
|
|
SArguments* g_arguments;
|
|
SQueryMetaInfo g_queryInfo;
|
|
STmqMetaInfo g_tmqInfo;
|
|
bool g_fail = false;
|
|
uint64_t g_memoryUsage = 0;
|
|
tools_cJSON* root;
|
|
extern char g_configDir[MAX_PATH_LEN];
|
|
|
|
#define CLIENT_INFO_LEN 20
|
|
static char g_client_info[CLIENT_INFO_LEN] = {0};
|
|
|
|
int32_t g_majorVersionOfClient = 0;
|
|
// set flag if command passed, see ARG_OPT_ ???
|
|
uint64_t g_argFlag = 0;
|
|
|
|
// declare fun
|
|
int getCodeFromResp(char *responseBuf);
|
|
int getServerVersionRest(int16_t rest_port);
|
|
void appendResultBufToFile(char *resultBuf, char * filePath);
|
|
int32_t replaceChildTblName(char *inSql, char *outSql, int tblIndex);
|
|
int32_t calcGroupIndex(char* dbName, char* tbName, int32_t groupCnt);
|
|
void prompt(bool nonStopMode);
|
|
void printErrCmdCodeStr(char *cmd, int32_t code, TAOS_RES *res);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
TEST(jsonTest, strToLowerCopy) {
|
|
// strToLowerCopy
|
|
const char* arr[][2] = {
|
|
{"ABC","abc"},
|
|
{"Http://Localhost:6041","http://localhost:6041"},
|
|
{"DEF","def"}
|
|
};
|
|
|
|
int rows = sizeof(arr) / sizeof(arr[0]);
|
|
for (int i = 0; i < rows; i++) {
|
|
char *p1 = (char *)arr[i][1];
|
|
char *p2 = strToLowerCopy((char *)arr[i][0]);
|
|
printf("p1: %s\n", p1);
|
|
printf("p2: %s\n", p2);
|
|
int32_t cmp = strcmp(p1, p2);
|
|
if (p2) {
|
|
free(p2);
|
|
}
|
|
ASSERT_EQ(cmp, 0);
|
|
}
|
|
|
|
// null
|
|
char * p = strToLowerCopy(NULL);
|
|
ASSERT_EQ(p, nullptr);
|
|
}
|
|
|
|
// getCodeFromResp
|
|
TEST(benchUtil, getCodeFromResp) {
|
|
int ret;
|
|
|
|
// "{"
|
|
ret = getCodeFromResp((char *)"http response failed.");
|
|
ASSERT_EQ(ret, -1);
|
|
|
|
// json format
|
|
ret = getCodeFromResp((char *)"{json valid test}");
|
|
ASSERT_EQ(ret, -1);
|
|
|
|
// code
|
|
ret = getCodeFromResp((char *)"{\"code\":\"invalid code type\"}");
|
|
ASSERT_EQ(ret, -1);
|
|
|
|
// des
|
|
ret = getCodeFromResp((char *)"{\"code\":100, \"desc\":12}");
|
|
ASSERT_EQ(ret, -1);
|
|
|
|
// des
|
|
ret = getCodeFromResp((char *)"{\"code\":100, \"desc\":12}");
|
|
ASSERT_EQ(ret, -1);
|
|
|
|
// succ
|
|
ret = getCodeFromResp((char *)"{\"code\":100, \"desc\":\"desc valid\"}");
|
|
ASSERT_EQ(ret, 100);
|
|
}
|
|
|
|
TEST(benchUtil, convertHostToServAddr) {
|
|
struct sockaddr_in serv_addr;
|
|
ASSERT_EQ(convertHostToServAddr(NULL, 0, &serv_addr), -1);
|
|
ASSERT_EQ(convertHostToServAddr((char *)"invalid.host", 0, &serv_addr), -1);
|
|
}
|
|
|
|
TEST(benchUtil, printErrCmdCodeStr) {
|
|
char msg[600];
|
|
memset(msg, 'a', sizeof(msg));
|
|
msg[sizeof(msg) - 1] = 0;
|
|
printErrCmdCodeStr(msg, 0, NULL);
|
|
}
|
|
|
|
// basic
|
|
TEST(benchUtil, Base) {
|
|
int ret;
|
|
// check crash
|
|
engineError((char *)"util", (char *)"taos_connect", 1);
|
|
|
|
// append result to file
|
|
appendResultBufToFile((char *)"check null file", NULL);
|
|
|
|
// replaceChildTblName
|
|
char szOut[128] = "";
|
|
ret = replaceChildTblName((char *)"select * from xxx;", szOut, 0);
|
|
ASSERT_EQ(ret, -1);
|
|
|
|
// toolsGetTimestamp
|
|
int64_t now = 0;
|
|
now = toolsGetTimestamp(TSDB_TIME_PRECISION_MILLI);
|
|
ASSERT_GE(now, 1700000000000);
|
|
now = toolsGetTimestamp(TSDB_TIME_PRECISION_MICRO);
|
|
ASSERT_GE(now, 1700000000000000);
|
|
now = toolsGetTimestamp(TSDB_TIME_PRECISION_NANO);
|
|
ASSERT_GE(now, 1700000000000000000);
|
|
|
|
// calc groups
|
|
ret = calcGroupIndex(NULL, NULL, 5);
|
|
ASSERT_EQ(ret, -1);
|
|
|
|
// bench
|
|
ASSERT_EQ(benchCalloc(100000000000, 1000000000000, false), nullptr);
|
|
|
|
// close
|
|
closeBenchConn(NULL);
|
|
}
|
|
|
|
// main
|
|
int main(int argc, char **argv) {
|
|
// init
|
|
initLog();
|
|
g_arguments = (SArguments *)calloc(1, sizeof(SArguments));
|
|
printf("Hello world taosBenchmark unit test for C \n");
|
|
testing::InitGoogleTest(&argc, argv);
|
|
|
|
// run
|
|
int ret = RUN_ALL_TESTS();
|
|
|
|
// exit
|
|
exitLog();
|
|
free(g_arguments);
|
|
g_arguments = NULL;
|
|
return ret;
|
|
}
|
|
|