diff options
author | Roland McGrath <roland@gnu.org> | 2005-02-16 09:45:15 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2005-02-16 09:45:15 +0000 |
commit | ec4876105040dce9cada213a9400a43800ab9ed9 (patch) | |
tree | 19507669aac51be0733086091b5a75cc2c90fcdb /stdio-common | |
parent | b25db04c7b8c439edc5fb898356c80645cf17419 (diff) |
2005-01-27 Jakub Jelinek <jakub@redhat.com>
[BZ #730]
* stdio-common/tst-fmemopen2.c: Include string.h.
2005-01-05 Ulrich Drepper <drepper@redhat.com>
[BZ #730]
* libio/iofopncook.c (_IO_cookie_seekoff): Define. Mark offset as
invalid to disable optimizations in fileops which won't work here.
(_IO_cookie_jumps): Use it.
(_IO_old_cookie_jumps): Likewise.
* libio/fmemopen.c (fmemopen_seek): Result must be returned in *P,
not the return value.
* stdio-common/Makefile (tests): Add tst-fmemopen2.
* stdio-common/tst-fmemopen2.c: New file.
Diffstat (limited to 'stdio-common')
-rw-r--r-- | stdio-common/tst-fmemopen2.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/stdio-common/tst-fmemopen2.c b/stdio-common/tst-fmemopen2.c new file mode 100644 index 0000000000..bcb136e8c1 --- /dev/null +++ b/stdio-common/tst-fmemopen2.c @@ -0,0 +1,68 @@ +#include <assert.h> +#include <stdio.h> +#include <string.h> +#include <sys/types.h> + + +static int +do_test (void) +{ + int result = 0; + char buf[100]; + FILE *fp = fmemopen (buf, sizeof (buf), "w"); + if (fp == NULL) + { + puts ("fmemopen failed"); + return 0; + } + static const char str[] = "hello world"; +#define nstr (sizeof (str) - 1) + fputs (str, fp); + off_t o = ftello (fp); + if (o != nstr) + { + printf ("first ftello returned %ld, expected %zu\n", o, nstr); + result = 1; + } + rewind (fp); + o = ftello (fp); + if (o != 0) + { + printf ("second ftello returned %ld, expected %zu\n", o, 0); + result = 1; + } + if (fseeko (fp, 0, SEEK_END) != 0) + { + puts ("fseeko failed"); + return 1; + } + o = ftello (fp); + if (o != nstr) + { + printf ("third ftello returned %ld, expected %zu\n", o, nstr); + result = 1; + } + rewind (fp); + static const char str2[] = "just hello"; +#define nstr2 (sizeof (str2) - 1) + assert (nstr2 < nstr); + fputs (str2, fp); + o = ftello (fp); + if (o != nstr2) + { + printf ("fourth ftello returned %ld, expected %zu\n", o, nstr2); + result = 1; + } + fclose (fp); + static const char str3[] = "just hellod"; + if (strcmp (buf, str3) != 0) + { + printf ("final string is \"%s\", expected \"%s\"\n", + buf, str3); + result = 1; + } + return result; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" |