Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling

This commit is contained in:
maxed 2018-03-31 13:17:45 +03:00 committed by Sergei Nikulov
parent aa18b573c8
commit 7e93637acd
2 changed files with 17 additions and 17 deletions

View 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