mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-30 13:13:43 +08:00
7e39d8025d
* libio/tst-ext2.c: New file.
59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
#include <stdio.h>
|
|
#include <stdio_ext.h>
|
|
|
|
|
|
static char *fname;
|
|
|
|
#define PREPARE(argc, argv) \
|
|
do { \
|
|
int fd = create_temp_file ("tst-ext2", &fname); \
|
|
if (fd == -1) \
|
|
{ \
|
|
puts ("cannot create temporary file"); \
|
|
exit (1); \
|
|
} \
|
|
close (fd); \
|
|
} while (0)
|
|
|
|
|
|
static int
|
|
do_test (void)
|
|
{
|
|
int res = 0;
|
|
|
|
FILE *fp;
|
|
|
|
fp = fopen (fname, "w");
|
|
printf ("Initial state for write-only stream: %d %d\n",
|
|
__freading (fp) != 0, __fwriting (fp) != 0);
|
|
res |= ((__freading (fp) != 0) != 0
|
|
|| (__fwriting (fp) != 0) != 1);
|
|
fclose (fp);
|
|
|
|
fp = fopen (fname, "r");
|
|
printf ("Initial state for read-only stream: %d %d\n",
|
|
__freading (fp) != 0, __fwriting (fp) != 0);
|
|
res |= ((__freading (fp) != 0) != 1
|
|
|| (__fwriting (fp) != 0) != 0);
|
|
fclose (fp);
|
|
|
|
fp = fopen (fname, "r+");
|
|
printf ("Initial state for read-write stream: %d %d\n",
|
|
__freading (fp) != 0, __fwriting (fp) != 0);
|
|
res |= ((__freading (fp) != 0) != 0
|
|
|| (__fwriting (fp) != 0) != 0);
|
|
fclose (fp);
|
|
|
|
fp = fopen (fname, "w+");
|
|
printf ("Initial state for read-write stream: %d %d\n",
|
|
__freading (fp) != 0, __fwriting (fp) != 0);
|
|
res |= ((__freading (fp) != 0) != 0
|
|
|| (__fwriting (fp) != 0) != 0);
|
|
fclose (fp);
|
|
|
|
return res;
|
|
}
|
|
|
|
#define TEST_FUNCTION do_test ()
|
|
#include "../test-skeleton.c"
|