From 7e93637acd9f5741ac4c09bbca353ac8da42bb17 Mon Sep 17 00:00:00 2001 From: maxed Date: Sat, 31 Mar 2018 13:17:45 +0300 Subject: Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling --- CMake/CurlTests.c | 30 +++++++++++++++--------------- CMakeLists.txt | 4 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/CMake/CurlTests.c b/CMake/CurlTests.c index bc36c8ef7..ac959f340 100644 --- a/CMake/CurlTests.c +++ b/CMake/CurlTests.c @@ -507,30 +507,30 @@ main () #ifdef HAVE_GLIBC_STRERROR_R #include #include + +void check(char c) {} + int main () { - char buffer[1024]; /* big enough to play with */ - char *string = - strerror_r(EACCES, buffer, sizeof(buffer)); - /* this should've returned a string */ - if(!string || !string[0]) - return 99; - return 0; + char buffer[1024]; + // This will not compile if strerror_r does not return a char* + check(strerror_r(EACCES, buffer, sizeof(buffer))[0]); + return 0; } #endif #ifdef HAVE_POSIX_STRERROR_R #include #include + +// float, because a pointer can't be implicitly cast to float +void check(float f) {} + int main () { - char buffer[1024]; /* big enough to play with */ - int error = - strerror_r(EACCES, buffer, sizeof(buffer)); - /* This should've returned zero, and written an error string in the - buffer.*/ - if(!buffer[0] || error) - return 99; - return 0; + char buffer[1024]; + // This will not compile if strerror_r does not return an int + check(strerror_r(EACCES, buffer, sizeof(buffer))); + return 0; } #endif #ifdef HAVE_FSETXATTR_6 diff --git a/CMakeLists.txt b/CMakeLists.txt index b8c79f88a..685faf934 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -902,7 +902,7 @@ endif() check_symbol_exists(fsetxattr "${CURL_INCLUDES}" HAVE_FSETXATTR) if(HAVE_FSETXATTR) foreach(CURL_TEST HAVE_FSETXATTR_5 HAVE_FSETXATTR_6) - curl_internal_test_run(${CURL_TEST}) + curl_internal_test(${CURL_TEST}) endforeach(CURL_TEST) endif(HAVE_FSETXATTR) @@ -982,7 +982,7 @@ foreach(CURL_TEST HAVE_GLIBC_STRERROR_R HAVE_POSIX_STRERROR_R ) - curl_internal_test_run(${CURL_TEST}) + curl_internal_test(${CURL_TEST}) endforeach(CURL_TEST) # Check for reentrant -- cgit v1.2.1