cmake_minimum_required(VERSION 3.16)
set(TNEL_TEST_TARGET tneltest)
find_package(GTest REQUIRED)
file(GLOB_RECURSE ALL_CPP_FILES ${CMAKE_CURRENT_SOURCE_DIR}/../ "*.cpp")
set(TEST_SOURCES "")
foreach(file ${ALL_CPP_FILES})
if(NOT file MATCHES ".*test/runtime/checkpoint/channel/.*")
list(APPEND TEST_SOURCES ${file})
endif()
endforeach()
list(FILTER TEST_SOURCES EXCLUDE REGEX ".*/test_udf/.*")
message(STATUS "current TEST_SOURCES files for test ${TEST_SOURCES}")
message(STATUS "current ROOT_SOURCES files for test ${ROOT_SOURCES}")
add_subdirectory(core/operators/test_udf)
add_executable(${TNEL_TEST_TARGET}
${SOURCES}
${ROOT_SOURCES}
${TEST_SOURCES}
${OMNIRUNTIME_SRC_DIR}/OmniOperatorJIT/core/src/memory/memory_manager.cpp
${OMNIRUNTIME_SRC_DIR}/OmniOperatorJIT/core/test/util/test_util.cpp
)
target_include_directories(${TNEL_TEST_TARGET} PRIVATE
include
${CMAKE_CURRENT_SOURCE_DIR}/../core/include
${CMAKE_CURRENT_SOURCE_DIR})
target_link_directories(${TNEL_TEST_TARGET} PUBLIC "${OMNIRUNTIME_LIB_DIR}")
target_link_libraries(${TNEL_TEST_TARGET}
PRIVATE
boundscheck
core
table
runtime
streaming
datagen
basictypes
basicfunctions
thirdlibrary
${ORT_VEC_SO}
${ORT_CODEGEN_SO}
${ORT_OP_SO}
LLVM-15
-Wl,--whole-archive
-Wl,--no-whole-archive
GTest::GTest GTest::Main
gmock
)
include(CTest)
add_test(NAME Tests COMMAND tneltest)
set(INPUT_FILES
${CMAKE_CURRENT_SOURCE_DIR}/table/sources/csv_test.csv
${CMAKE_CURRENT_SOURCE_DIR}/streaming/api/operators/lookupjoin_test.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/operator/genauction_small.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/operator/genbid_small.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/operator/result_small.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/operator/q20_auction.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/operator/q20_bid.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/operator/q20_result.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/operator/q13_lookupjoinCalcChain.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/operator/test_countchar.csv
${CMAKE_CURRENT_SOURCE_DIR}/format/testVectorBatch.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/runtime/operators/rank/q19_input.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/runtime/operators/rank/q19_expected_output.csv
${CMAKE_CURRENT_SOURCE_DIR}/table/runtime/operators/rank/without_rownumber.csv
${CMAKE_CURRENT_SOURCE_DIR}/functionaltest/e2e/input/*
${CMAKE_CURRENT_SOURCE_DIR}/functionaltest/checkpoint/join_tdd.json
${CMAKE_CURRENT_SOURCE_DIR}/functionaltest/checkpoint/source1_tdd.json
${CMAKE_CURRENT_SOURCE_DIR}/functionaltest/checkpoint/source2_tdd.json
${CMAKE_CURRENT_SOURCE_DIR}/functionaltest/checkpoint/taskMCSConfJoin.json
)
message(STATUS "current INPUT_FILES for test ${INPUT_FILES}")
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/runtime/e2e/q4_e2e_csv_input_0.txt AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/runtime/e2e/q4_e2e_csv_input_1.txt)
list(APPEND INPUT_FILES
${CMAKE_CURRENT_SOURCE_DIR}/runtime/e2e/q4_e2e_csv_input_0.txt
${CMAKE_CURRENT_SOURCE_DIR}/runtime/e2e/q4_e2e_csv_input_1.txt
)
endif()
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/test/input)
target_link_libraries(${TNEL_TEST_TARGET} PUBLIC project_config)
if (WITH_OMNISTATESTORE)
target_link_libraries(${TNEL_TEST_TARGET} PRIVATE libockdbjni-linux64.so)
endif ()
if (JEMALLOC_LIB)
target_link_libraries(${TNEL_TEST_TARGET} PRIVATE ${JEMALLOC_LIB})
endif()
add_custom_command(TARGET tneltest POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${INPUT_FILES}
${CMAKE_BINARY_DIR}/test/input
)