]> granicus.if.org Git - curl/commitdiff
Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling
authormaxed <max.savenkov@gmail.com>
Sat, 31 Mar 2018 10:17:45 +0000 (13:17 +0300)
committerSergei Nikulov <snikulov@users.noreply.github.com>
Mon, 28 May 2018 05:05:16 +0000 (08:05 +0300)
CMake/CurlTests.c
CMakeLists.txt

index bc36c8ef7ddb93e1d6f6edf4b2a01067048517af..ac959f34061b34d1efaeed26f237db054d2c6cbc 100644 (file)
@@ -507,30 +507,30 @@ main ()
 #ifdef HAVE_GLIBC_STRERROR_R
 #include <string.h>
 #include <errno.h>
+
+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 <string.h>
 #include <errno.h>
+
+// 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
index b8c79f88a634ed88b0548dc3b57899082e11e766..685faf9340834c3801079bf2144f0f44594f0cc3 100644 (file)
@@ -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