Allow test suites to be run on Windows

For a start, they don't even compile with Visual Studio due to strcasecmp
being missing.  Secondly, on Windows Perl scripts aren't executable and have
to be run using the Perl interpreter directly; thankfully CMake is able to
find cygwin Perl straight away without problems.
This commit is contained in:
Nicholas Wilson 2015-11-14 13:09:01 +00:00 committed by Janos Follath
parent f6e0330c65
commit 44ea01110c
2 changed files with 8 additions and 1 deletions

View File

@ -10,6 +10,11 @@ if(ENABLE_ZLIB_SUPPORT)
set(libs ${libs} ${ZLIB_LIBRARIES}) set(libs ${libs} ${ZLIB_LIBRARIES})
endif(ENABLE_ZLIB_SUPPORT) 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) function(add_test_suite suite_name)
if(ARGV1) if(ARGV1)
set(data_name ${ARGV1}) set(data_name ${ARGV1})
@ -19,7 +24,7 @@ function(add_test_suite suite_name)
add_custom_command( add_custom_command(
OUTPUT test_suite_${data_name}.c OUTPUT test_suite_${data_name}.c
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_code.pl ${CMAKE_CURRENT_SOURCE_DIR}/suites test_suite_${suite_name} test_suite_${data_name} 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 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
) )

View File

@ -15,6 +15,8 @@
#ifdef _MSC_VER #ifdef _MSC_VER
#include <basetsd.h> #include <basetsd.h>
typedef UINT32 uint32_t; typedef UINT32 uint32_t;
#define strncasecmp _strnicmp
#define strcasecmp _stricmp
#else #else
#include <stdint.h> #include <stdint.h>
#endif #endif