| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | set(libs    mbedtls)if(USE_PKCS11_HELPER_LIBRARY)    set(libs ${libs} pkcs11-helper)endif(USE_PKCS11_HELPER_LIBRARY)if(ENABLE_ZLIB_SUPPORT)    set(libs ${libs} ${ZLIB_LIBRARIES})endif(ENABLE_ZLIB_SUPPORT)find_package(Perl)if(NOT PERL_FOUND)    message(FATAL_ERROR "Cannot build test suites without Perl")endif()function(add_test_suite suite_name)    if(ARGV1)        set(data_name ${ARGV1})    else()        set(data_name ${suite_name})    endif()    add_custom_command(        OUTPUT test_suite_${data_name}.c        COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_code.pl ${CMAKE_CURRENT_SOURCE_DIR}/suites test_suite_${suite_name} test_suite_${data_name}        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_code.pl mbedtls suites/helpers.function suites/main_test.function suites/test_suite_${suite_name}.function suites/test_suite_${data_name}.data    )    include_directories(${CMAKE_CURRENT_SOURCE_DIR})    add_executable(test_suite_${data_name} test_suite_${data_name}.c)    target_link_libraries(test_suite_${data_name} ${libs})    add_test(${data_name}-suite test_suite_${data_name})endfunction(add_test_suite)if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)if(MSVC)    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /w") # no warnings hereendif(MSVC)add_test_suite(aes aes.ecb)add_test_suite(aes aes.cbc)add_test_suite(aes aes.cfb)add_test_suite(aes aes.rest)add_test_suite(arc4)add_test_suite(asn1write)add_test_suite(base64)add_test_suite(blowfish)add_test_suite(camellia)add_test_suite(ccm)add_test_suite(cipher cipher.aes)add_test_suite(cipher cipher.arc4)add_test_suite(cipher cipher.blowfish)add_test_suite(cipher cipher.camellia)add_test_suite(cipher cipher.ccm)add_test_suite(cipher cipher.des)add_test_suite(cipher cipher.gcm)add_test_suite(cipher cipher.null)add_test_suite(cipher cipher.padding)add_test_suite(cmac)add_test_suite(ctr_drbg)add_test_suite(debug)add_test_suite(des)add_test_suite(dhm)add_test_suite(ecdh)add_test_suite(ecdsa)add_test_suite(ecjpake)add_test_suite(ecp)add_test_suite(entropy)add_test_suite(error)add_test_suite(gcm gcm.aes128_en)add_test_suite(gcm gcm.aes192_en)add_test_suite(gcm gcm.aes256_en)add_test_suite(gcm gcm.aes128_de)add_test_suite(gcm gcm.aes192_de)add_test_suite(gcm gcm.aes256_de)add_test_suite(gcm gcm.camellia)add_test_suite(hmac_drbg hmac_drbg.misc)add_test_suite(hmac_drbg hmac_drbg.no_reseed)add_test_suite(hmac_drbg hmac_drbg.nopr)add_test_suite(hmac_drbg hmac_drbg.pr)add_test_suite(md)add_test_suite(mdx)add_test_suite(memory_buffer_alloc)add_test_suite(mpi)add_test_suite(pem)add_test_suite(pkcs1_v15)add_test_suite(pkcs1_v21)add_test_suite(pkcs5)add_test_suite(pk)add_test_suite(pkparse)add_test_suite(pkwrite)add_test_suite(shax)add_test_suite(ssl)add_test_suite(timing)add_test_suite(rsa)add_test_suite(version)add_test_suite(xtea)add_test_suite(x509parse)add_test_suite(x509write)# Make data_files available in an out-of-source buildif (NOT ${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})    # Get OS dependent path to use in `execute_process`    file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/data_files" link)    file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/data_files" target)    if (NOT EXISTS ${link})        if (CMAKE_HOST_UNIX)            set(command ln -s ${target} ${link})        else()            set(command cmd.exe /c mklink /d ${link} ${target})        endif()        execute_process(COMMAND ${command}                        RESULT_VARIABLE result                        ERROR_VARIABLE output)        if (NOT ${result} EQUAL 0)            message(FATAL_ERROR "Could not create symbolic link for: ${target} --> ${output}")        endif()    endif()endif()
 |