blob: 7b08d729a443b5b3e7182052f2f3f06c826dcd24 [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# where to put generated libraries
set(LIBRARY_OUTPUT_PATH "${BUILD_DIR}/test")
# where to put generated libraries
set(EXECUTABLE_OUTPUT_PATH "${BUILD_DIR}/test")
file(GLOB_RECURSE UT_FILES CONFIGURE_DEPENDS
agent/*.cpp
ai/*.cpp
cloud/*.cpp
common/*.cpp
core/*.cpp
exec/*.cpp
exprs/*.cpp
format/*.cpp
gutil/*.cpp
io/*.cpp
load/*.cpp
runtime/*.cpp
service/*.cpp
storage/*.cpp
testutil/*.cpp
tools/*.cpp
util/*.cpp
vec/*.cpp
)
if (ENABLE_TDE)
file(GLOB_RECURSE TDE_UT_FILES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${TDE_MODULE_DIR}/*.cpp")
list(APPEND UT_FILES ${TDE_UT_FILES})
endif()
if (ENABLE_TLS)
file(GLOB_RECURSE TLS_UT_FILES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${TLS_MODULE_DIR}/*.cpp")
list(APPEND UT_FILES ${TLS_UT_FILES})
endif()
# Remove all cpp files from vector search (ANN index) subdirectory
# Since cpp files in vector search subdirs use header files from faiss.
# The compile check used by doris can not be applied to faiss headers.
# So vector_search cpp files are compiled in a separate library using different compile options.
file(GLOB_RECURSE VECTOR_FILES CONFIGURE_DEPENDS storage/index/ann/*.cpp)
list(REMOVE_ITEM UT_FILES ${VECTOR_FILES})
# Lance reader tests require Rust static library (BUILD_RUST_READERS=ON)
if (NOT BUILD_RUST_READERS)
file(GLOB_RECURSE LANCE_TEST_FILES CONFIGURE_DEPENDS format/lance/*.cpp)
list(REMOVE_ITEM UT_FILES ${LANCE_TEST_FILES})
endif()
if(NOT DEFINED DORIS_WITH_LZO)
list(REMOVE_ITEM UT_FILES ${CMAKE_CURRENT_SOURCE_DIR}/exec/plain_text_line_reader_lzop_test.cpp)
endif()
if (OS_MACOSX)
list(REMOVE_ITEM UT_FILES ${CMAKE_CURRENT_SOURCE_DIR}/util/system_metrics_test.cpp)
endif()
list(REMOVE_ITEM UT_FILES ${CMAKE_CURRENT_SOURCE_DIR}/tools/benchmark_tool.cpp)
# todo: need fix those ut
list(REMOVE_ITEM UT_FILES
${CMAKE_CURRENT_SOURCE_DIR}/agent/heartbeat_server_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/common/config_validator_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/service/http/metrics_action_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/storage/segment/binary_plain_page_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/storage/segment/binary_prefix_page_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/storage/segment/bitshuffle_page_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/storage/segment/column_reader_writer_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/storage/segment/frame_of_reference_page_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/storage/segment/plain_page_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/storage/segment/rle_page_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/storage/segment/segment_iterator_apply_index_expr_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/runtime/decimal_value_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/util/decompress_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/util/url_coding_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/io/fs/remote_file_system_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/storage/remote_rowset_gc_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/runtime/jsonb_value_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/runtime/large_int_value_test.cpp
)
message(STATUS "Disable the metrics collection for orc")
add_compile_definitions(ENABLE_METRICS=0)
list(APPEND UT_FILES
${CONTRIB_PATH}/apache-orc/c++/test/MemoryInputStream.cc
${CONTRIB_PATH}/apache-orc/c++/test/MemoryOutputStream.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestAttributes.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestBlockBuffer.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestBufferedOutputStream.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestBloomFilter.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestByteRle.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestByteRLEEncoder.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestColumnPrinter.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestColumnReader.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestColumnStatistics.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestCompression.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestDecompression.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestDecimal.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestDictionaryEncoding.cc
#${CONTRIB_PATH}/apache-orc/c++/test/TestDriver.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestInt128.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestMurmur3.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestPredicateLeaf.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestPredicatePushdown.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestReader.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestRleDecoder.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestRleEncoder.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestRLEV2Util.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestSargsApplier.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestSearchArgument.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestStripeIndexStatistics.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestTimestampStatistics.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestTimezone.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestType.cc
${CONTRIB_PATH}/apache-orc/c++/test/TestWriter.cc
)
include_directories(
${CMAKE_SOURCE_DIR}/../contrib/apache-orc/c++/src
${CMAKE_BINARY_DIR}/apache-orc/c++/src
${CMAKE_BINARY_DIR}/apache-orc/c++/include
)
# Removed test files are added back using separate compile arguments.
add_subdirectory(storage/index/ann)
add_executable(doris_be_test ${UT_FILES})
if (APPLE)
target_link_libraries(doris_be_test ${TEST_LINK_LIBS}
-Wl,-force_load,$<TARGET_FILE:vector_search_test>)
else()
target_link_libraries(doris_be_test ${TEST_LINK_LIBS}
-Wl,--whole-archive vector_search_test -Wl,--no-whole-archive)
endif()
set_target_properties(doris_be_test PROPERTIES COMPILE_FLAGS "-fno-access-control")
target_compile_options(doris_be_test PRIVATE -include gtest/gtest.h -Wno-shadow -Wno-shadow-field)
if (OS_MACOSX AND ARCH_ARM)
find_program(DSYMUTIL NAMES dsymutil)
message(STATUS "dsymutil found: ${DSYMUTIL}")
find_program(LLVM_STRIP NAMES llvm-strip)
message(STATUS "llvm-strip found: ${LLVM_STRIP}")
add_custom_command(TARGET doris_be_test POST_BUILD
COMMAND ${DSYMUTIL} $<TARGET_FILE:doris_be_test>
COMMAND ${LLVM_STRIP} --strip-all $<TARGET_FILE:doris_be_test>
)
endif()