* tests/test-fdopen.c (main): Don't invoke fdopen on a file
descriptors that is not open, as POSIX doesn't specify the
resulting behavior and the test does not work on Tru64.
Problem reported by Steven M. Schweda in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-01/msg00079.html
2014-01-20 Paul Eggert <eggert@cs.ucla.edu>
+ fdopen-tests: port to Tru64
+ * tests/test-fdopen.c (main): Don't invoke fdopen on a file
+ descriptors that is not open, as POSIX doesn't specify the
+ resulting behavior and the test does not work on Tru64.
+ Problem reported by Steven M. Schweda in:
+ http://lists.gnu.org/archive/html/bug-gnulib/2014-01/msg00079.html
+
stdalign: port to HP-UX compilers
* lib/stdalign.in.h (_Alignas): Use __attribute__ (__aligned__ (x))
if __HP_cc or __HP_aCC are nonzero.
int
main (void)
{
- /* Test behaviour for invalid file descriptors. */
- {
- FILE *fp;
-
- errno = 0;
- fp = fdopen (-1, "r");
- if (fp == NULL)
- ASSERT (errno == EBADF);
- else
- fclose (fp);
- }
- {
- FILE *fp;
-
- close (99);
- errno = 0;
- fp = fdopen (99, "r");
- if (fp == NULL)
- ASSERT (errno == EBADF);
- else
- fclose (fp);
- }
+ /* Test behavior on failure. POSIX makes it hard to check for
+ 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. */
+
+ int i;
+ for (i = 0; i < 1000; i++)
+ {
+ errno = 0;
+ if (! fdopen (STDOUT_FILENO, "w"))
+ {
+ ASSERT (errno != 0);
+ break;
+ }
+ }
return 0;
}