diff options
Diffstat (limited to 'libio/tst-ext.c')
-rw-r--r-- | libio/tst-ext.c | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/libio/tst-ext.c b/libio/tst-ext.c deleted file mode 100644 index f69fbe6f21..0000000000 --- a/libio/tst-ext.c +++ /dev/null @@ -1,141 +0,0 @@ -#include <stdio_ext.h> -#include <stdlib.h> -#include <string.h> - - -int -main (void) -{ - FILE *fp; - const char teststring[] = "hello world"; - char buf[3072]; - int result = 0; - char readbuf[256]; - - /* Open a file. */ - fp = tmpfile (); - - /* Set a buffer. */ - if (setvbuf (fp, buf, _IOFBF, sizeof buf) == EOF) - { - printf ("setvbuf failed: %m\n"); - exit (1); - } - - /* Get the buffer size. */ - if (__fbufsize (fp) != sizeof buf) - { - printf ("__fbusize() reported a buffer size of %Zd bytes;" - " we installed a buffer with %Zd bytes\n", - __fbufsize (fp), sizeof buf); - result = 1; - } - - /* Write something and read it back. */ - if (fputs (teststring, fp) == EOF) - { - printf ("writing to new stream failed: %m\n"); - exit (1); - } - rewind (fp); - if (fgets (readbuf, sizeof readbuf, fp) == NULL) - { - printf ("reading from new stream failed: %m\n"); - exit (1); - } - if (strcmp (readbuf, teststring) != 0) - { - puts ("not the correct string read"); - exit (1); - } - - /* The file must be opened for reading and writing. */ - if (__freading (fp) == 0) - { - puts ("__freading() reported stream is not last read from"); - result = 1; - } - if (__fwriting (fp) != 0) - { - puts ("__fwriting() reported stream is write-only or last written to"); - result = 1; - } - rewind (fp); - if (fputs (teststring, fp) == EOF) - { - printf ("writing(2) to new stream failed: %m\n"); - exit (1); - } - if (__fwriting (fp) == 0) - { - puts ("__fwriting() doe snot reported stream is last written to"); - result = 1; - } - if (__freading (fp) != 0) - { - puts ("__freading() reported stream is last read from"); - result = 1; - } - - if (__freadable (fp) == 0) - { - puts ("__freading() reported stream is last readable"); - result = 1; - } - if (__fwritable (fp) == 0) - { - puts ("__freading() reported stream is last writable"); - result = 1; - } - - /* The string we wrote above should still be in the buffer. */ - if (__fpending (fp) != strlen (teststring)) - { - printf ("__fpending() returned %Zd; expected %Zd\n", - __fpending (fp), strlen (teststring)); - result = 1; - } - /* Discard all the output. */ - __fpurge (fp); - /* And check again. */ - if (__fpending (fp) != 0) - { - printf ("__fpending() returned %Zd; expected 0\n", - __fpending (fp)); - result = 1; - } - - - /* Find out whether buffer is line buffered. */ - if (__flbf (fp) != 0) - { - puts ("__flbf() reports line buffered but it is fully buffered"); - result = 1; - } - - if (setvbuf (fp, buf, _IOLBF, sizeof buf) == EOF) - { - printf ("setvbuf(2) failed: %m\n"); - exit (1); - } - if (__flbf (fp) == 0) - { - puts ("__flbf() reports file is not line buffered"); - result = 1; - } - - if (setvbuf (fp, NULL, _IONBF, 0) == EOF) - { - printf ("setvbuf(3) failed: %m\n"); - exit (1); - } - if (__flbf (fp) != 0) - { - puts ("__flbf() reports line buffered but it is not buffered"); - result = 1; - } - - fclose (fp); - - return result; -} |