blob: 3b3ad365045f617ebeab36bbbc6c22a7028ef1e9 [file] [log] [blame]
Paul Bakkerb06819b2011-01-18 16:18:38 +00001set(libs
2 polarssl
3)
4
5if(USE_PKCS11_HELPER_LIBRARY)
6 set(libs ${libs} pkcs11-helper)
7endif(USE_PKCS11_HELPER_LIBRARY)
8
Paul Bakker92eeea42012-07-03 15:10:33 +00009if(ENABLE_ZLIB_SUPPORT)
10 set(libs ${libs} ${ZLIB_LIBRARIES})
11endif(ENABLE_ZLIB_SUPPORT)
12
Paul Bakker73043762011-07-13 15:03:10 +000013function(add_test_suite suite_name)
14 if(ARGV1)
15 set(data_name ${ARGV1})
16 else()
Paul Bakker46c17942011-07-13 14:54:54 +000017 set(data_name ${suite_name})
18 endif()
19
Paul Bakker367dae42009-06-28 21:50:27 +000020 add_custom_command(
Paul Bakker73043762011-07-13 15:03:10 +000021 OUTPUT test_suite_${data_name}.c
Paul Bakker46c17942011-07-13 14:54:54 +000022 COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_code.pl ${CMAKE_CURRENT_SOURCE_DIR}/suites test_suite_${suite_name} test_suite_${data_name}
23 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_code.pl polarssl fct.h suites/helpers.function suites/test_suite_${suite_name}.function suites/test_suite_${data_name}.data
Paul Bakker4c14a252010-06-18 22:54:05 +000024 )
25
26 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
Paul Bakker73043762011-07-13 15:03:10 +000027 add_executable(test_suite_${data_name} test_suite_${data_name}.c)
28 target_link_libraries(test_suite_${data_name} ${libs})
29 add_test(${data_name}-suite test_suite_${data_name})
Paul Bakker367dae42009-06-28 21:50:27 +000030endfunction(add_test_suite)
31
Manuel Pégourié-Gonnard121f7c92015-08-10 17:28:58 +020032set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function -Wno-unused-result")
Paul Bakker367dae42009-06-28 21:50:27 +000033
Paul Bakkerd68703b2013-04-12 13:20:30 +020034add_test_suite(aes aes.ecb)
35add_test_suite(aes aes.cbc)
36add_test_suite(aes aes.cfb)
37add_test_suite(aes aes.rest)
Paul Bakker367dae42009-06-28 21:50:27 +000038add_test_suite(arc4)
Paul Bakker9d781402011-05-09 16:17:09 +000039add_test_suite(base64)
Paul Bakkera9379c02012-07-04 11:02:11 +000040add_test_suite(blowfish)
Paul Bakker9d781402011-05-09 16:17:09 +000041add_test_suite(camellia)
Paul Bakker46c17942011-07-13 14:54:54 +000042add_test_suite(cipher cipher.aes)
Paul Bakker6132d0a2012-07-04 17:10:40 +000043add_test_suite(cipher cipher.blowfish)
Paul Bakker46c17942011-07-13 14:54:54 +000044add_test_suite(cipher cipher.camellia)
45add_test_suite(cipher cipher.des)
Paul Bakkerfab5c822012-02-06 16:45:10 +000046add_test_suite(cipher cipher.null)
Paul Bakker0e04d0e2011-11-27 14:46:59 +000047add_test_suite(ctr_drbg)
Paul Bakker9d781402011-05-09 16:17:09 +000048add_test_suite(debug)
49add_test_suite(des)
50add_test_suite(dhm)
51add_test_suite(error)
Paul Bakkerd68703b2013-04-12 13:20:30 +020052add_test_suite(gcm gcm.encrypt_128)
53add_test_suite(gcm gcm.encrypt_192)
54add_test_suite(gcm gcm.encrypt_256)
55add_test_suite(gcm gcm.decrypt_128)
56add_test_suite(gcm gcm.decrypt_192)
57add_test_suite(gcm gcm.decrypt_256)
Paul Bakker367dae42009-06-28 21:50:27 +000058add_test_suite(hmac_shax)
Paul Bakker17373852011-01-06 14:20:01 +000059add_test_suite(md)
Paul Bakker9d781402011-05-09 16:17:09 +000060add_test_suite(mdx)
61add_test_suite(mpi)
Paul Bakkerf518b162012-08-23 13:03:18 +000062add_test_suite(pbkdf2)
Paul Bakker9dcc3222011-03-08 14:16:06 +000063add_test_suite(pkcs1_v21)
Paul Bakker19bd2972013-06-14 12:06:45 +020064add_test_suite(pkcs5)
Paul Bakker9d781402011-05-09 16:17:09 +000065add_test_suite(shax)
66add_test_suite(rsa)
67add_test_suite(version)
68add_test_suite(xtea)
69add_test_suite(x509parse)
Paul Bakker6d620502012-02-16 14:09:13 +000070add_test_suite(x509write)
Paul Bakkere96bfbc2014-07-07 16:55:03 +020071
72# Make data_files available in an out-of-source build
73if (NOT ${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
74 # Get OS dependent path to use in `execute_process`
75 file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/data_files" link)
76 file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/data_files" target)
77
Paul Bakker57ca5702014-03-07 10:33:55 +010078 if (NOT EXISTS ${link})
Andre Heineckedcbd74f2014-05-21 10:25:51 +000079 if (CMAKE_HOST_UNIX)
Paul Bakker57ca5702014-03-07 10:33:55 +010080 set(command ln -s ${target} ${link})
81 else()
82 set(command cmd.exe /c mklink ${link} ${target})
83 endif()
Paul Bakkere96bfbc2014-07-07 16:55:03 +020084
Paul Bakker57ca5702014-03-07 10:33:55 +010085 execute_process(COMMAND ${command}
86 RESULT_VARIABLE result
87 ERROR_VARIABLE output)
Paul Bakkere96bfbc2014-07-07 16:55:03 +020088
Paul Bakker57ca5702014-03-07 10:33:55 +010089 if (NOT ${result} EQUAL 0)
90 message(FATAL_ERROR "Could not create symbolic link for: ${target} --> ${output}")
91 endif()
Paul Bakkere96bfbc2014-07-07 16:55:03 +020092 endif()
93endif()
94