]> pd.if.org Git - pdclib/blobdiff - functions/stdio/clearerr.c
Fixed clearerr test driver.
[pdclib] / functions / stdio / clearerr.c
index 922f6ab9d239e18cbf5eea9d959d0102c10d9f54..ca22b0332b72b3f8f84bf3c490e2cd520e068a43 100644 (file)
@@ -1,5 +1,3 @@
-/* $Id$ */
-
 /* clearerr( FILE * )
 
    This file is part of the Public Domain C Library (PDCLib).
@@ -18,35 +16,35 @@ void clearerr( struct _PDCLIB_file_t * stream )
 #endif
 
 #ifdef TEST
-#include <_PDCLIB_test.h>
+#include "_PDCLIB_test.h"
 
 int main( void )
 {
     FILE * fh;
-    remove( "testfile" );
-    TESTCASE( ( fh = fopen( "testfile", "w+" ) ) != NULL );
+    TESTCASE( ( fh = tmpfile() ) != NULL );
     /* Flags should be clear */
     TESTCASE( ! ferror( fh ) );
     TESTCASE( ! feof( fh ) );
-    /* Reading from input stream - should provoke error */
+    /* Reading from empty stream - should provoke EOF */
+    rewind( fh );
     TESTCASE( fgetc( fh ) == EOF );
-    TESTCASE( ferror( fh ) );
-    TESTCASE( feof( fh ) );
+    TESTCASE( ferror( fh ) );
+    TESTCASE( feof( fh ) );
     /* clearerr() should clear flags */
     clearerr( fh );
     TESTCASE( ! ferror( fh ) );
     TESTCASE( ! feof( fh ) );
-    /* Reading from empty stream - should provoke EOF */
-    rewind( fh );
+    /* reopen() the file write-only */
+    TESTCASE( ( fh = freopen( NULL, "w", fh ) ) != NULL );
+    /* Reading from write-only stream - should provoke error */
     TESTCASE( fgetc( fh ) == EOF );
-    TESTCASE( ferror( fh ) );
-    TESTCASE( feof( fh ) );
+    TESTCASE( ferror( fh ) );
+    TESTCASE( feof( fh ) );
     /* clearerr() should clear flags */
     clearerr( fh );
     TESTCASE( ! ferror( fh ) );
     TESTCASE( ! feof( fh ) );
     TESTCASE( fclose( fh ) == 0 );
-    remove( "testfile" );
     return TEST_RESULTS;
 }