source: vendor/glibc-tests/glibc/stdio-common/tst-fmemopen2.c

Last change on this file was 2036, checked in by bird, 20 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 1.4 KB
Line 
1#include <assert.h>
2#include <stdio.h>
3#include <string.h>
4#include <sys/types.h>
5
6
7static int
8do_test (void)
9{
10 int result = 0;
11 char buf[100];
12 FILE *fp = fmemopen (buf, sizeof (buf), "w");
13 if (fp == NULL)
14 {
15 puts ("fmemopen failed");
16 return 0;
17 }
18 static const char str[] = "hello world";
19#define nstr (sizeof (str) - 1)
20 fputs (str, fp);
21 off_t o = ftello (fp);
22 if (o != nstr)
23 {
24 printf ("first ftello returned %ld, expected %zu\n", o, nstr);
25 result = 1;
26 }
27 rewind (fp);
28 o = ftello (fp);
29 if (o != 0)
30 {
31 printf ("second ftello returned %ld, expected %zu\n", o, 0);
32 result = 1;
33 }
34 if (fseeko (fp, 0, SEEK_END) != 0)
35 {
36 puts ("fseeko failed");
37 return 1;
38 }
39 o = ftello (fp);
40 if (o != nstr)
41 {
42 printf ("third ftello returned %ld, expected %zu\n", o, nstr);
43 result = 1;
44 }
45 rewind (fp);
46 static const char str2[] = "just hello";
47#define nstr2 (sizeof (str2) - 1)
48 assert (nstr2 < nstr);
49 fputs (str2, fp);
50 o = ftello (fp);
51 if (o != nstr2)
52 {
53 printf ("fourth ftello returned %ld, expected %zu\n", o, nstr2);
54 result = 1;
55 }
56 fclose (fp);
57 static const char str3[] = "just hellod";
58 if (strcmp (buf, str3) != 0)
59 {
60 printf ("final string is \"%s\", expected \"%s\"\n",
61 buf, str3);
62 result = 1;
63 }
64 return result;
65}
66
67#define TEST_FUNCTION do_test ()
68#include "../test-skeleton.c"
Note: See TracBrowser for help on using the repository browser.