1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-07-28 01:41:48 +03:00
Files
libssh/tests/unittests/CMakeLists.txt
Nicolas Graves aeb0b2ec6f Add unittests for sshsig functions
Signed-off-by: Nicolas Graves <ngraves@ngraves.fr>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Eshan Kelkar <eshankelkar@galorithm.com>
2025-07-10 11:21:44 +02:00

139 lines
3.6 KiB
CMake

project(unittests C)
set(LIBSSH_UNIT_TESTS
torture_bignum
torture_buffer
torture_bytearray
torture_callbacks
torture_crypto
torture_init
torture_list
torture_misc
torture_config
torture_options
torture_isipaddr
torture_knownhosts_parsing
torture_hashes
torture_packet_filter
torture_temp_dir
torture_temp_file
torture_push_pop_dir
torture_session_keys
torture_string
torture_tokens
)
set(LIBSSH_THREAD_UNIT_TESTS
torture_rand
torture_threads_init
torture_threads_buffer
torture_threads_crypto
)
set(TORTURE_UNIT_ENVIRONMENT
"LSAN_OPTIONS=suppressions=${libssh-tests_SOURCE_DIR}/suppressions/lsan.supp;")
if (OPENSSL_FOUND)
list(APPEND TORTURE_UNIT_ENVIRONMENT OPENSSL_ENABLE_SHA1_SIGNATURES=1)
endif (OPENSSL_FOUND)
if (UNIX AND NOT WIN32)
set(LIBSSH_UNIT_TESTS
${LIBSSH_UNIT_TESTS}
# this uses a socketpair
torture_packet
# requires ssh-keygen
torture_keyfiles
torture_pki
torture_pki_rsa
torture_pki_dsa
torture_pki_ed25519
torture_pki_sshsig
# requires /dev/null
torture_channel
)
if (HAVE_IFADDRS_H)
set(LIBSSH_UNIT_TESTS
${LIBSSH_UNIT_TESTS}
# requires some non-standard API from netdb.h, in.h
# and arpa/inet.h for handling IP addresses
torture_config_match_localnetwork
)
endif (HAVE_IFADDRS_H)
if (WITH_SERVER)
set(LIBSSH_UNIT_TESTS
${LIBSSH_UNIT_TESTS}
torture_bind_config)
if (WITH_GEX)
set(LIBSSH_UNIT_TESTS
${LIBSSH_UNIT_TESTS}
torture_moduli)
endif()
endif()
if (WITH_PKCS11_URI)
set(LIBSSH_UNIT_TESTS
${LIBSSH_UNIT_TESTS}
torture_pki_rsa_uri
torture_pki_ecdsa_uri
)
if (WITH_PKCS11_PROVIDER)
set(LIBSSH_UNIT_TESTS
${LIBSSH_UNIT_TESTS}
torture_pki_ed25519_uri
)
list(APPEND TORTURE_UNIT_ENVIRONMENT
PKCS11_PROVIDER_DEBUG=file:/tmp/p11prov-debug.log)
endif()
endif()
if (HAVE_ECC)
set(LIBSSH_UNIT_TESTS
${LIBSSH_UNIT_TESTS}
torture_pki_ecdsa
)
endif()
set(LIBSSH_THREAD_UNIT_TESTS
${LIBSSH_THREAD_UNIT_TESTS}
# requires pthread
torture_threads_pki_rsa
)
if (WITH_SERVER)
set(LIBSSH_THREAD_UNIT_TESTS
${LIBSSH_THREAD_UNIT_TESTS}
torture_unit_server
torture_server_x11
torture_forwarded_tcpip_callback
torture_server_direct_tcpip
)
endif (WITH_SERVER)
endif (UNIX AND NOT WIN32)
foreach(_UNIT_TEST ${LIBSSH_UNIT_TESTS})
add_cmocka_test(${_UNIT_TEST}
SOURCES ${_UNIT_TEST}.c
COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
LINK_LIBRARIES ${TEST_TARGET_LIBRARIES}
)
set_property(TEST ${_UNIT_TEST}
PROPERTY
ENVIRONMENT ${TORTURE_UNIT_ENVIRONMENT})
endforeach()
if (CMAKE_USE_PTHREADS_INIT)
foreach(_UNIT_TEST ${LIBSSH_THREAD_UNIT_TESTS})
add_cmocka_test(${_UNIT_TEST}
SOURCES ${_UNIT_TEST}.c
COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
LINK_LIBRARIES ${TEST_TARGET_LIBRARIES} Threads::Threads
)
set_property(TEST ${_UNIT_TEST}
PROPERTY
ENVIRONMENT ${TORTURE_UNIT_ENVIRONMENT})
endforeach()
endif ()