[td-10564] refactor and add test cases.
This commit is contained in:
parent
cfc632893a
commit
33e384a7aa
|
@ -0,0 +1,86 @@
|
||||||
|
#include "clientInt.h"
|
||||||
|
#include "trpc.h"
|
||||||
|
#include "os.h"
|
||||||
|
#include "taosmsg.h"
|
||||||
|
#include "tcache.h"
|
||||||
|
#include "tconfig.h"
|
||||||
|
#include "tglobal.h"
|
||||||
|
#include "tnote.h"
|
||||||
|
#include "tref.h"
|
||||||
|
#include "tscLog.h"
|
||||||
|
#include "tsched.h"
|
||||||
|
#include "ttime.h"
|
||||||
|
#include "ttimezone.h"
|
||||||
|
|
||||||
|
#define TSC_VAR_NOT_RELEASE 1
|
||||||
|
#define TSC_VAR_RELEASED 0
|
||||||
|
|
||||||
|
static int32_t sentinel = TSC_VAR_NOT_RELEASE;
|
||||||
|
static pthread_once_t tscinit = PTHREAD_ONCE_INIT;
|
||||||
|
|
||||||
|
extern int32_t tscInitRes;
|
||||||
|
|
||||||
|
int taos_options(TSDB_OPTION option, const void *arg, ...) {
|
||||||
|
static int32_t lock = 0;
|
||||||
|
|
||||||
|
for (int i = 1; atomic_val_compare_exchange_32(&lock, 0, 1) != 0; ++i) {
|
||||||
|
if (i % 1000 == 0) {
|
||||||
|
tscInfo("haven't acquire lock after spin %d times.", i);
|
||||||
|
sched_yield();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int ret = taos_options_imp(option, (const char*)arg);
|
||||||
|
|
||||||
|
atomic_store_32(&lock, 0);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int taos_init() {
|
||||||
|
pthread_once(&tscinit, taos_init_imp);
|
||||||
|
return tscInitRes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// this function may be called by user or system, or by both simultaneously.
|
||||||
|
void taos_cleanup(void) {
|
||||||
|
tscDebug("start to cleanup client environment");
|
||||||
|
|
||||||
|
if (atomic_val_compare_exchange_32(&sentinel, TSC_VAR_NOT_RELEASE, TSC_VAR_RELEASED) != TSC_VAR_NOT_RELEASE) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t id = tscReqRef;
|
||||||
|
tscReqRef = -1;
|
||||||
|
taosCloseRef(id);
|
||||||
|
|
||||||
|
void* p = tscQhandle;
|
||||||
|
tscQhandle = NULL;
|
||||||
|
taosCleanUpScheduler(p);
|
||||||
|
|
||||||
|
id = tscConnRef;
|
||||||
|
tscConnRef = -1;
|
||||||
|
taosCloseRef(id);
|
||||||
|
|
||||||
|
p = tscRpcCache;
|
||||||
|
tscRpcCache = NULL;
|
||||||
|
|
||||||
|
if (p != NULL) {
|
||||||
|
taosCacheCleanup(p);
|
||||||
|
pthread_mutex_destroy(&rpcObjMutex);
|
||||||
|
}
|
||||||
|
|
||||||
|
rpcCleanup();
|
||||||
|
taosCloseLog();
|
||||||
|
}
|
||||||
|
|
||||||
|
void taos_close(TAOS* taos) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *taos_errstr(TAOS_RES *res) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void taos_free_result(TAOS_RES *res) {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
MESSAGE(STATUS "build parser unit test")
|
||||||
|
|
||||||
|
# GoogleTest requires at least C++11
|
||||||
|
SET(CMAKE_CXX_STANDARD 11)
|
||||||
|
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST)
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(clientTest ${SOURCE_LIST})
|
||||||
|
TARGET_LINK_LIBRARIES(
|
||||||
|
clientTest
|
||||||
|
PUBLIC os util common transport gtest taos
|
||||||
|
)
|
||||||
|
|
||||||
|
TARGET_INCLUDE_DIRECTORIES(
|
||||||
|
clientTest
|
||||||
|
PUBLIC "${CMAKE_SOURCE_DIR}/include/libs/client/"
|
||||||
|
PRIVATE "${CMAKE_SOURCE_DIR}/source/libs/client/inc"
|
||||||
|
)
|
Loading…
Reference in New Issue