From: Bruno Haible Date: Tue, 10 Jan 2023 15:23:18 +0000 (+0100) Subject: Fix some test failures on Android ≥ 11. X-Git-Tag: v1.0~1863 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=6833c62713a33de20dba79a2ad26cbcd9f2c715e;p=gnulib.git Fix some test failures on Android ≥ 11. * tests/test-fclose.c (main): On Android, avoid triggering the file-descriptor sanitizer (fdsan). * tests/test-fdopen.c (main): Likewise. * tests/test-fflush.c (main): Likewise. * tests/test-fgetc.c (main): Likewise. * tests/test-fputc.c (main): Likewise. * tests/test-fread.c (main): Likewise. * tests/test-fseeko4.c (main): Likewise. * tests/test-ftello4.c (main): Likewise. * tests/test-fwrite.c (main): Likewise. --- diff --git a/ChangeLog b/ChangeLog index f67f1755bc..ab4a8f3a9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2023-01-10 Bruno Haible + + Fix some test failures on Android ≥ 11. + * tests/test-fclose.c (main): On Android, avoid triggering the + file-descriptor sanitizer (fdsan). + * tests/test-fdopen.c (main): Likewise. + * tests/test-fflush.c (main): Likewise. + * tests/test-fgetc.c (main): Likewise. + * tests/test-fputc.c (main): Likewise. + * tests/test-fread.c (main): Likewise. + * tests/test-fseeko4.c (main): Likewise. + * tests/test-ftello4.c (main): Likewise. + * tests/test-fwrite.c (main): Likewise. + 2023-01-10 Bruno Haible utimens: Fix warning on Android. diff --git a/tests/test-fclose.c b/tests/test-fclose.c index 5eda8fa672..5df500634e 100644 --- a/tests/test-fclose.c +++ b/tests/test-fclose.c @@ -75,6 +75,7 @@ main (int argc, char **argv) /* Test that fclose() sets errno if someone else closes the stream fd behind the back of stdio. */ + #if !defined __ANDROID__ /* fdsan */ { FILE *fp = fdopen (fd, "w+"); ASSERT (fp != NULL); @@ -83,6 +84,7 @@ main (int argc, char **argv) ASSERT (fclose (fp) == EOF); ASSERT (errno == EBADF); } + #endif /* Test that fclose() sets errno if the stream was constructed with an invalid file descriptor. */ diff --git a/tests/test-fdopen.c b/tests/test-fdopen.c index 113bde0c83..cf28f8e7e5 100644 --- a/tests/test-fdopen.c +++ b/tests/test-fdopen.c @@ -33,9 +33,14 @@ main (void) failure, since the behavior is not well-defined on invalid file descriptors, so try fdopen 1000 times and if that's not enough to fail due to EMFILE, so be it. */ + #if defined __ANDROID__ /* fdsan */ + #define COUNT 1 + #else + #define COUNT 1000 + #endif int i; - for (i = 0; i < 1000; i++) + for (i = 0; i < COUNT; i++) { errno = 0; if (! fdopen (STDOUT_FILENO, "w")) diff --git a/tests/test-fflush.c b/tests/test-fflush.c index c996b18c25..f43d9788eb 100644 --- a/tests/test-fflush.c +++ b/tests/test-fflush.c @@ -148,6 +148,7 @@ main (void) /* Test that fflush() sets errno if someone else closes the stream fd behind the back of stdio. */ + #if !defined __ANDROID__ /* fdsan */ { FILE *fp = fopen ("test-fflush.txt", "w"); ASSERT (fp != NULL); @@ -158,6 +159,7 @@ main (void) ASSERT (errno == EBADF); fclose (fp); } + #endif /* Test that fflush() sets errno if the stream was constructed with an invalid file descriptor. */ diff --git a/tests/test-fgetc.c b/tests/test-fgetc.c index 59ab4098d4..c8c65f58aa 100644 --- a/tests/test-fgetc.c +++ b/tests/test-fgetc.c @@ -54,6 +54,7 @@ main (int argc, char **argv) /* Test that fgetc() sets errno if someone else closes the stream fd behind the back of stdio. */ + #if !defined __ANDROID__ /* fdsan */ { FILE *fp = fopen (filename, "r"); ASSERT (fp != NULL); @@ -64,6 +65,7 @@ main (int argc, char **argv) ASSERT (ferror (fp)); fclose (fp); } + #endif /* Test that fgetc() sets errno if the stream was constructed with an invalid file descriptor. */ diff --git a/tests/test-fputc.c b/tests/test-fputc.c index 2f0f1a33a9..3a9e7c38ac 100644 --- a/tests/test-fputc.c +++ b/tests/test-fputc.c @@ -45,6 +45,7 @@ main (int argc, char **argv) /* Test that fputc() on an unbuffered stream sets errno if someone else closes the stream fd behind the back of stdio. */ + #if !defined __ANDROID__ /* fdsan */ { FILE *fp = fopen (filename, "w"); ASSERT (fp != NULL); @@ -56,6 +57,7 @@ main (int argc, char **argv) ASSERT (ferror (fp)); fclose (fp); } + #endif /* Test that fputc() on an unbuffered stream sets errno if the stream was constructed with an invalid file descriptor. */ diff --git a/tests/test-fread.c b/tests/test-fread.c index 54e9d631ae..d6d16ec3d9 100644 --- a/tests/test-fread.c +++ b/tests/test-fread.c @@ -54,6 +54,7 @@ main (int argc, char **argv) /* Test that fread() sets errno if someone else closes the stream fd behind the back of stdio. */ + #if !defined __ANDROID__ /* fdsan */ { FILE *fp = fopen (filename, "r"); char buf[5]; @@ -65,6 +66,7 @@ main (int argc, char **argv) ASSERT (ferror (fp)); fclose (fp); } + #endif /* Test that fread() sets errno if the stream was constructed with an invalid file descriptor. */ diff --git a/tests/test-fseeko4.c b/tests/test-fseeko4.c index f509702b3e..ad90a2c990 100644 --- a/tests/test-fseeko4.c +++ b/tests/test-fseeko4.c @@ -33,6 +33,7 @@ main (int argc, char **argv) { FILE *fp = fopen (filename, "r"); ASSERT (fp != NULL); + #if !defined __ANDROID__ /* fdsan */ setvbuf (fp, NULL, _IONBF, 0); ASSERT (ftell (fp) == 0); ASSERT (fseeko (fp, 0, SEEK_END) == 0); @@ -41,6 +42,7 @@ main (int argc, char **argv) errno = 0; ASSERT (fseeko (fp, 0, SEEK_SET) == -1); ASSERT (errno == EBADF); + #endif fclose (fp); } diff --git a/tests/test-ftello4.c b/tests/test-ftello4.c index b1ff8268f6..590c17b678 100644 --- a/tests/test-ftello4.c +++ b/tests/test-ftello4.c @@ -33,11 +33,13 @@ main (int argc, char **argv) { FILE *fp = fopen (filename, "r"); ASSERT (fp != NULL); + #if !defined __ANDROID__ /* fdsan */ setvbuf (fp, NULL, _IONBF, 0); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (ftello (fp) == (off_t)-1); ASSERT (errno == EBADF); + #endif fclose (fp); } diff --git a/tests/test-fwrite.c b/tests/test-fwrite.c index 07f8b73e03..503e849b47 100644 --- a/tests/test-fwrite.c +++ b/tests/test-fwrite.c @@ -45,6 +45,7 @@ main (int argc, char **argv) /* Test that fwrite() on an unbuffered stream sets errno if someone else closes the stream fd behind the back of stdio. */ + #if !defined __ANDROID__ /* fdsan */ { FILE *fp = fopen (filename, "w"); char buf[5] = "world"; @@ -57,6 +58,7 @@ main (int argc, char **argv) ASSERT (ferror (fp)); fclose (fp); } + #endif /* Test that fwrite() on an unbuffered stream sets errno if the stream was constructed with an invalid file descriptor. */