diff options
Diffstat (limited to 'libio/bug-memstream1.c')
-rw-r--r-- | libio/bug-memstream1.c | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/libio/bug-memstream1.c b/libio/bug-memstream1.c deleted file mode 100644 index 8af36fe..0000000 --- a/libio/bug-memstream1.c +++ /dev/null @@ -1,133 +0,0 @@ -#include <stdio.h> -#include <string.h> - - -static int -do_test (void) -{ - size_t size; - char *buf; - FILE *fp = open_memstream (&buf, &size); - if (fp == NULL) - { - puts ("open_memstream failed"); - return 1; - } - - off64_t off = ftello64 (fp); - if (off != 0) - { - puts ("initial position wrong"); - return 1; - } - - if (fseek (fp, 32768, SEEK_SET) != 0) - { - puts ("fseek failed"); - return 1; - } - - if (fputs ("foo", fp) == EOF) - { - puts ("fputs failed"); - return 1; - } - - if (fclose (fp) == EOF) - { - puts ("fclose failed"); - return 1; - } - - if (size != 32768 + 3) - { - printf ("expected size %d, got %zu\n", 32768 + 3, size); - return 1; - } - - for (int i = 0; i < 32768; ++i) - if (buf[i] != '\0') - { - printf ("byte at offset %d is %#hhx\n", i, buf[i]); - return 1; - } - - if (memcmp (buf + 32768, "foo", 3) != 0) - { - puts ("written string incorrect"); - return 1; - } - - /* Mark the buffer. */ - memset (buf, 'A', size); - free (buf); - - /* Try again, this time with write mode enabled before the seek. */ - fp = open_memstream (&buf, &size); - if (fp == NULL) - { - puts ("2nd open_memstream failed"); - return 1; - } - - off = ftello64 (fp); - if (off != 0) - { - puts ("2nd initial position wrong"); - return 1; - } - - if (fputs ("bar", fp) == EOF) - { - puts ("2nd fputs failed"); - return 1; - } - - if (fseek (fp, 32768, SEEK_SET) != 0) - { - puts ("2nd fseek failed"); - return 1; - } - - if (fputs ("foo", fp) == EOF) - { - puts ("3rd fputs failed"); - return 1; - } - - if (fclose (fp) == EOF) - { - puts ("2nd fclose failed"); - return 1; - } - - if (size != 32768 + 3) - { - printf ("2nd expected size %d, got %zu\n", 32768 + 3, size); - return 1; - } - - if (memcmp (buf, "bar", 3) != 0) - { - puts ("initial string incorrect in 2nd try"); - return 1; - } - - for (int i = 3; i < 32768; ++i) - if (buf[i] != '\0') - { - printf ("byte at offset %d is %#hhx in 2nd try\n", i, buf[i]); - return 1; - } - - if (memcmp (buf + 32768, "foo", 3) != 0) - { - puts ("written string incorrect in 2nd try"); - return 1; - } - - return 0; -} - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" |