add_test( NAME tiny-convmem-mcp.smoke COMMAND "${CMAKE_COMMAND}" "-DSERVER=$" "-DINPUT=${CMAKE_CURRENT_SOURCE_DIR}/fixtures/smoke-input.jsonl" "-DDATA_DIR=${CMAKE_CURRENT_BINARY_DIR}/smoke-data" -P "${CMAKE_CURRENT_SOURCE_DIR}/smoke.cmake" ) set_tests_properties(tiny-convmem-mcp.smoke PROPERTIES TIMEOUT 15) add_executable(tiny-convmem-domain-test domain_test.c "${PROJECT_SOURCE_DIR}/src/domain/message.c" "${PROJECT_SOURCE_DIR}/src/domain/search.c" ) target_include_directories(tiny-convmem-domain-test PRIVATE "${PROJECT_SOURCE_DIR}/src") target_compile_features(tiny-convmem-domain-test PRIVATE c_std_17) target_link_libraries(tiny-convmem-domain-test PRIVATE tiny-convmem-base) if(MSVC) target_compile_options(tiny-convmem-domain-test PRIVATE /utf-8 /W4) endif() add_test(NAME tiny-convmem-mcp.domain COMMAND tiny-convmem-domain-test) add_executable(tiny-convmem-search-index-test search_index_test.c "${PROJECT_SOURCE_DIR}/src/domain/message.c" "${PROJECT_SOURCE_DIR}/src/domain/search.c" ) target_include_directories(tiny-convmem-search-index-test PRIVATE "${PROJECT_SOURCE_DIR}/src") target_compile_features(tiny-convmem-search-index-test PRIVATE c_std_17) target_compile_definitions(tiny-convmem-search-index-test PRIVATE TINY_SEARCH_TEST_HASH_BITS=8) target_link_libraries(tiny-convmem-search-index-test PRIVATE tiny-convmem-base) if(MSVC) target_compile_options(tiny-convmem-search-index-test PRIVATE /utf-8 /W4) endif() add_test(NAME tiny-convmem-mcp.search-index COMMAND tiny-convmem-search-index-test) add_executable(tiny-convmem-search-benchmark search_index_benchmark.c "${PROJECT_SOURCE_DIR}/src/domain/message.c" "${PROJECT_SOURCE_DIR}/src/domain/search.c" ) target_include_directories(tiny-convmem-search-benchmark PRIVATE "${PROJECT_SOURCE_DIR}/src") target_compile_features(tiny-convmem-search-benchmark PRIVATE c_std_17) target_link_libraries(tiny-convmem-search-benchmark PRIVATE tiny-convmem-base) if(MSVC) target_compile_options(tiny-convmem-search-benchmark PRIVATE /utf-8 /W4) target_link_libraries(tiny-convmem-search-benchmark PRIVATE psapi) endif() add_executable(tiny-convmem-mcpc-test mcpc_test.c) target_include_directories(tiny-convmem-mcpc-test PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") target_compile_features(tiny-convmem-mcpc-test PRIVATE c_std_17) target_link_libraries(tiny-convmem-mcpc-test PRIVATE mcpc::mcpc) if(MSVC) target_compile_options(tiny-convmem-mcpc-test PRIVATE /utf-8 /W4) endif() add_test(NAME tiny-convmem-mcp.mcpc COMMAND tiny-convmem-mcpc-test) find_package(Python3 REQUIRED COMPONENTS Interpreter) add_test( NAME tiny-convmem-mcp.protocol COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/mcp_protocol_test.py" --server "$" --iterations 1000 ) set_tests_properties(tiny-convmem-mcp.protocol PROPERTIES TIMEOUT 120) add_executable(tiny-convmem-boundary-test boundary_test.c "${PROJECT_SOURCE_DIR}/src/mcp/json.c" "${PROJECT_SOURCE_DIR}/src/storage/codec.c" ) target_include_directories(tiny-convmem-boundary-test PRIVATE "${PROJECT_SOURCE_DIR}/src" "${CMAKE_CURRENT_SOURCE_DIR}" ) target_compile_features(tiny-convmem-boundary-test PRIVATE c_std_17) target_link_libraries(tiny-convmem-boundary-test PRIVATE tiny-convmem-sys) if(MSVC) target_compile_options(tiny-convmem-boundary-test PRIVATE /utf-8 /W4) endif() add_test(NAME tiny-convmem-mcp.boundaries COMMAND tiny-convmem-boundary-test) foreach(boundary_group allocator encoding codec json sys) add_test( NAME "tiny-convmem-mcp.${boundary_group}" COMMAND tiny-convmem-boundary-test "${boundary_group}" ) endforeach() add_executable(tiny-convmem-storage-test storage_test.c "${PROJECT_SOURCE_DIR}/src/domain/message.c" "${PROJECT_SOURCE_DIR}/src/storage/codec.c" "${PROJECT_SOURCE_DIR}/src/storage/store.c" "${PROJECT_SOURCE_DIR}/src/mcp/tools/common/history.c" ) target_include_directories(tiny-convmem-storage-test PRIVATE "${PROJECT_SOURCE_DIR}/src") target_compile_features(tiny-convmem-storage-test PRIVATE c_std_17) target_link_libraries(tiny-convmem-storage-test PRIVATE tiny-convmem-sys) if(MSVC) target_compile_options(tiny-convmem-storage-test PRIVATE /utf-8 /W4) endif() add_test(NAME tiny-convmem-mcp.storage COMMAND tiny-convmem-storage-test) add_test( NAME tiny-convmem-mcp.lifecycle COMMAND "${CMAKE_COMMAND}" "-DSERVER=$" "-DWRITE_INPUT=${CMAKE_CURRENT_SOURCE_DIR}/fixtures/write-once.jsonl" "-DHEALTH_INPUT=${CMAKE_CURRENT_SOURCE_DIR}/fixtures/health.jsonl" "-DDATA_DIR=${CMAKE_CURRENT_BINARY_DIR}/lifecycle-data" -P "${CMAKE_CURRENT_SOURCE_DIR}/lifecycle.cmake" ) set_tests_properties(tiny-convmem-mcp.lifecycle PROPERTIES TIMEOUT 15) add_test( NAME tiny-convmem-mcp.cli COMMAND "${CMAKE_COMMAND}" "-DSERVER=$" "-DIMPORT_INPUT=${CMAKE_CURRENT_SOURCE_DIR}/fixtures/import-sample.jsonl" "-DDATA_DIR=${CMAKE_CURRENT_BINARY_DIR}/cli-data" -P "${CMAKE_CURRENT_SOURCE_DIR}/cli.cmake" ) set_tests_properties(tiny-convmem-mcp.cli PROPERTIES TIMEOUT 15) add_test(NAME tiny-convmem-mcp.requires-data-dir COMMAND $) set_tests_properties(tiny-convmem-mcp.requires-data-dir PROPERTIES WILL_FAIL TRUE) find_package(Git REQUIRED) find_program( CLANG_FORMAT_EXECUTABLE NAMES clang-format HINTS "C:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/Llvm/x64/bin" ) add_test( NAME tiny-convmem-mcp.audit COMMAND "${CMAKE_COMMAND}" "-DSOURCE_DIR=${PROJECT_SOURCE_DIR}" "-DGIT_EXECUTABLE=${GIT_EXECUTABLE}" "-DCLANG_FORMAT_EXECUTABLE=${CLANG_FORMAT_EXECUTABLE}" -P "${CMAKE_CURRENT_SOURCE_DIR}/audit.cmake" ) if(TINY_CONVMEM_ENABLE_ASAN AND MSVC) get_filename_component(TINY_CONVMEM_MSVC_BIN_DIR "${CMAKE_C_COMPILER}" DIRECTORY) set_property( TEST tiny-convmem-mcp.smoke tiny-convmem-mcp.domain tiny-convmem-mcp.search-index tiny-convmem-mcp.mcpc tiny-convmem-mcp.protocol tiny-convmem-mcp.boundaries tiny-convmem-mcp.allocator tiny-convmem-mcp.encoding tiny-convmem-mcp.codec tiny-convmem-mcp.json tiny-convmem-mcp.sys tiny-convmem-mcp.storage tiny-convmem-mcp.lifecycle tiny-convmem-mcp.cli tiny-convmem-mcp.requires-data-dir tiny-convmem-mcp.audit APPEND PROPERTY ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${TINY_CONVMEM_MSVC_BIN_DIR}" ) endif()