From 1dd6f365074c97b3aca07c894ebb5bc8e3af4be9 Mon Sep 17 00:00:00 2001 From: Jun Li Date: Tue, 15 Jun 2021 20:35:46 -0700 Subject: [PATCH] Add support to build queryTest, cliTest and osTest (#6497) --- src/client/tests/CMakeLists.txt | 7 ++++++- src/os/tests/CMakeLists.txt | 7 ++++++- src/query/src/qTsbuf.c | 29 +++++++++++++---------------- src/query/tests/CMakeLists.txt | 8 +++++++- 4 files changed, 32 insertions(+), 19 deletions(-) diff --git a/src/client/tests/CMakeLists.txt b/src/client/tests/CMakeLists.txt index f07af85e25..1a6c45aade 100644 --- a/src/client/tests/CMakeLists.txt +++ b/src/client/tests/CMakeLists.txt @@ -7,7 +7,12 @@ FIND_LIBRARY(LIB_GTEST_STATIC_DIR libgtest.a /usr/lib/ /usr/local/lib) IF (HEADER_GTEST_INCLUDE_DIR AND LIB_GTEST_STATIC_DIR) MESSAGE(STATUS "gTest library found, build unit test") - INCLUDE_DIRECTORIES(${HEADER_GTEST_INCLUDE_DIR}) + # GoogleTest requires at least C++11 + SET(CMAKE_CXX_STANDARD 11) + + INCLUDE_DIRECTORIES(/usr/include /usr/local/include) + LINK_DIRECTORIES(/usr/lib /usr/local/lib) + AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST) ADD_EXECUTABLE(cliTest ${SOURCE_LIST}) diff --git a/src/os/tests/CMakeLists.txt b/src/os/tests/CMakeLists.txt index b87e3d2a62..b00f0ebdc8 100644 --- a/src/os/tests/CMakeLists.txt +++ b/src/os/tests/CMakeLists.txt @@ -7,7 +7,12 @@ FIND_LIBRARY(LIB_GTEST_STATIC_DIR libgtest.a /usr/lib/ /usr/local/lib) IF (HEADER_GTEST_INCLUDE_DIR AND LIB_GTEST_STATIC_DIR) MESSAGE(STATUS "gTest library found, build unit test") - INCLUDE_DIRECTORIES(${HEADER_GTEST_INCLUDE_DIR}) + # GoogleTest requires at least C++11 + SET(CMAKE_CXX_STANDARD 11) + + INCLUDE_DIRECTORIES(/usr/include /usr/local/include) + LINK_DIRECTORIES(/usr/lib /usr/local/lib) + AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST) ADD_EXECUTABLE(osTest ${SOURCE_LIST}) diff --git a/src/query/src/qTsbuf.c b/src/query/src/qTsbuf.c index 5d599ff08a..cf67e37cf2 100644 --- a/src/query/src/qTsbuf.c +++ b/src/query/src/qTsbuf.c @@ -812,34 +812,31 @@ int32_t tsBufMerge(STSBuf* pDestBuf, const STSBuf* pSrcBuf) { int64_t offset = getDataStartOffset(); int32_t size = (int32_t)pSrcBuf->fileSize - (int32_t)offset; - - int64_t rc = taosFSendFile(pDestBuf->f, pSrcBuf->f, &offset, size); - - if (rc == -1) { -// tscError("failed to merge tsBuf from:%s to %s, reason:%s\n", pSrcBuf->path, pDestBuf->path, strerror(errno)); - return -1; - } + int64_t written = taosFSendFile(pDestBuf->f, pSrcBuf->f, &offset, size); - if (rc != size) { -// tscError("failed to merge tsBuf from:%s to %s, reason:%s\n", pSrcBuf->path, pDestBuf->path, strerror(errno)); + if (written == -1 || written != size) { return -1; } pDestBuf->numOfTotal += pSrcBuf->numOfTotal; - + int32_t oldSize = pDestBuf->fileSize; - + + // file meta data may be cached, close and reopen the file for accurate file size. + fclose(pDestBuf->f); + pDestBuf->f = fopen(pDestBuf->path, "rb+"); + if (pDestBuf->f == NULL) { + return -1; + } + struct stat fileStat; if (fstat(fileno(pDestBuf->f), &fileStat) != 0) { return -1; } pDestBuf->fileSize = (uint32_t)fileStat.st_size; - + assert(pDestBuf->fileSize == oldSize + size); - -// tscDebug("tsBuf merge success, %p, path:%s, fd:%d, file size:%d, numOfGroups:%d, autoDelete:%d", pDestBuf, -// pDestBuf->path, fileno(pDestBuf->f), pDestBuf->fileSize, pDestBuf->numOfGroups, pDestBuf->autoDelete); - + return 0; } diff --git a/src/query/tests/CMakeLists.txt b/src/query/tests/CMakeLists.txt index f8b6daaa90..0cfe2ff165 100644 --- a/src/query/tests/CMakeLists.txt +++ b/src/query/tests/CMakeLists.txt @@ -7,11 +7,17 @@ FIND_LIBRARY(LIB_GTEST_STATIC_DIR libgtest.a /usr/lib/ /usr/local/lib) IF (HEADER_GTEST_INCLUDE_DIR AND LIB_GTEST_STATIC_DIR) MESSAGE(STATUS "gTest library found, build unit test") + # GoogleTest requires at least C++11 + SET(CMAKE_CXX_STANDARD 11) + + INCLUDE_DIRECTORIES(/usr/include /usr/local/include) + LINK_DIRECTORIES(/usr/lib /usr/local/lib) + INCLUDE_DIRECTORIES(${HEADER_GTEST_INCLUDE_DIR}) AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_LIST) ADD_EXECUTABLE(queryTest ${SOURCE_LIST}) - TARGET_LINK_LIBRARIES(queryTest taos query gtest pthread gcov) + TARGET_LINK_LIBRARIES(queryTest taos query gtest pthread) ENDIF() SET_SOURCE_FILES_PROPERTIES(./astTest.cpp PROPERTIES COMPILE_FLAGS -w) -- GitLab