Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* libio/Makefile (tests): Add tst-ext2.
	* libio/tst-ext2.c: New file.
  • Loading branch information
Ulrich Drepper committed Oct 13, 2007
1 parent ed36f22 commit 7e39d80
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 2 deletions.
2 changes: 2 additions & 0 deletions ChangeLog
Expand Up @@ -4,6 +4,8 @@
* libio/__freading.c (__freading): Don't return true for
write-only streams. For read/write streams, check whether we
performed a read operation already.
* libio/Makefile (tests): Add tst-ext2.
* libio/tst-ext2.c: New file.

2007-10-12 Ulrich Drepper <drepper@redhat.com>

Expand Down
4 changes: 2 additions & 2 deletions libio/Makefile
@@ -1,4 +1,4 @@
# Copyright (C) 1995-2002,2003,2004,2006 Free Software Foundation, Inc.
# Copyright (C) 1995-2002,2003,2004,2006,2007 Free Software Foundation, Inc.
# This file is part of the GNU C Library.

# The GNU C Library is free software; you can redistribute it and/or
Expand Down Expand Up @@ -48,7 +48,7 @@ routines := \
libc_fatal fmemopen

tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \
tst_wprintf2 tst-widetext test-fmemopen tst-ext tst-fopenloc \
tst_wprintf2 tst-widetext test-fmemopen tst-ext tst-ext2 tst-fopenloc \
tst-fgetws tst-ungetwc1 tst-ungetwc2 tst-swscanf tst-sscanf \
tst-mmap-setvbuf bug-ungetwc1 bug-ungetwc2 tst-atime tst-eof \
tst-freopen bug-rewind bug-rewind2 bug-ungetc bug-fseek \
Expand Down
58 changes: 58 additions & 0 deletions libio/tst-ext2.c
@@ -0,0 +1,58 @@
#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"

0 comments on commit 7e39d80

Please sign in to comment.