]> pd.if.org Git - pdclib/blobdiff - functions/stdio/setbuf.c
Merged branch stdio_rewrite back into trunk.
[pdclib] / functions / stdio / setbuf.c
index e77d2d4807692e80373c08080d95e78bc1f1c041..a68ea27da8ac01aef06c3a9c4c25510f6f049ee8 100644 (file)
@@ -12,7 +12,6 @@
 
 void setbuf( struct _PDCLIB_file_t * _PDCLIB_restrict stream, char * _PDCLIB_restrict buf )
 {
-    /* TODO: Only allowed on a "virgin" stream; add check. */
     if ( buf == NULL )
     {
         setvbuf( stream, buf, _IONBF, BUFSIZ );
@@ -27,34 +26,30 @@ void setbuf( struct _PDCLIB_file_t * _PDCLIB_restrict stream, char * _PDCLIB_res
 
 #ifdef TEST
 #include <_PDCLIB_test.h>
+#include <stdlib.h>
 
 int main( void )
 {
     /* TODO: Extend testing once setvbuf() is finished. */
 #ifndef REGTEST
     char const * const filename = "testfile";
-    char buffer[ 100 ];
-    struct _PDCLIB_file_t * fh;
+    char buffer[ BUFSIZ + 1 ];
+    FILE * fh;
+    remove( filename );
     /* full buffered */
     TESTCASE( ( fh = fopen( filename, "w" ) ) != NULL );
-    TESTCASE( fh->status & _PDCLIB_LIBBUFFER );
-    TESTCASE( fh->bufsize == BUFSIZ );
     setbuf( fh, buffer );
-#if 0
     TESTCASE( fh->buffer == buffer );
-    TESTCASE( fh->bufsize == BUFFERSIZE );
-#endif
+    TESTCASE( fh->bufsize == BUFSIZ );
     TESTCASE( ( fh->status & ( _IOFBF | _IONBF | _IOLBF ) ) == _IOFBF );
     TESTCASE( fclose( fh ) == 0 );
+    TESTCASE( remove( filename ) == 0 );
     /* not buffered */
     TESTCASE( ( fh = fopen( filename, "w" ) ) != NULL );
     setbuf( fh, NULL );
-#if 0
-    TESTCASE( fh->buffer == NULL );
-    TESTCASE( fh->bufsize == 0 );
-#endif
     TESTCASE( ( fh->status & ( _IOFBF | _IONBF | _IOLBF ) ) == _IONBF );
     TESTCASE( fclose( fh ) == 0 );
+    TESTCASE( remove( filename ) == 0 );
 #else
     puts( " NOTEST setbuf() test driver is PDCLib-specific." );
 #endif