1 /* Test for some *_unlocked stdio interfaces.
2 Copyright (C) 2004 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4 Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, write to the Free
18 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
26 static void do_prepare (void);
27 static int do_test (void);
28 #define PREPARE(argc, argv) do_prepare ()
29 #define TEST_FUNCTION do_test ()
30 #include "../test-skeleton.c"
35 const char blah
[] = "BLAH";
36 char buf
[strlen (blah
) + 1];
41 if ((fp
= fdopen (fd
, "w+")) == NULL
)
49 || fwrite_unlocked (blah
, blah
- blah
, strlen (blah
), f
++) != 0
51 || fwrite_unlocked ("", 5.0, 0, --f
) != 0
53 || fwrite_unlocked (cp
++, 16, 0.25, fp
) != 0
55 || fwrite_unlocked (--cp
, 0.25, 16, fp
) != 0
57 || fwrite_unlocked (blah
, 0, -0.0, fp
) != 0
60 puts ("One of fwrite_unlocked tests failed");
64 if (fwrite_unlocked (blah
, 1, strlen (blah
) - 2, fp
) != strlen (blah
) - 2)
66 puts ("Could not write string into file");
70 if (putc_unlocked ('A' + 0x1000000, fp
) != 'A')
72 puts ("putc_unlocked failed");
77 cp
= blah
+ strlen (blah
) - 1;
78 if (putc_unlocked (*cp
++, f
++) != 'H'
80 || cp
!= strchr (blah
, '\0'))
82 puts ("fputc_unlocked failed");
86 if (ftello (fp
) != (off_t
) strlen (blah
))
88 printf ("Failed to write %zd bytes to temporary file", strlen (blah
));
96 memset (buf
, ' ', sizeof (buf
));
98 || fread_unlocked (buf
, buf
- buf
, strlen (blah
), f
++) != 0
100 || fread_unlocked (buf
, 5.0, 0, --f
) != 0
102 || fread_unlocked (wp
++, 16, 0.25, fp
) != 0
104 || fread_unlocked (--wp
, 0.25, 16, fp
) != 0
106 || fread_unlocked (buf
, 0, -0.0, fp
) != 0
108 || memcmp (buf
, " ", sizeof (buf
)) != 0)
110 puts ("One of fread_unlocked tests failed");
114 if (fread_unlocked (buf
, 1, strlen (blah
) - 2, fp
) != strlen (blah
) - 2)
116 puts ("Could not read string from file");
120 if (getc_unlocked (fp
) != 'A')
122 puts ("getc_unlocked failed");
127 if (fgetc_unlocked (f
++) != 'H'
129 || fgetc_unlocked (--f
) != EOF
132 puts ("fgetc_unlocked failed");
136 if (ftello (fp
) != (off_t
) strlen (blah
))
138 printf ("Failed to read %zd bytes from temporary file", strlen (blah
));
151 fd
= create_temp_file ("tst-unlockedio.", NULL
);
154 printf ("cannot create temporary file: %m\n");