+ char const * const filename = "testfile";
+ char buffer[ BUFFERSIZE ];
+ struct _PDCLIB_file_t * fh;
+ /* full buffered, user-supplied buffer */
+ TESTCASE( ( fh = fopen( filename, "w" ) ) != NULL );
+ TESTCASE( fh->status & _PDCLIB_LIBBUFFER );
+ TESTCASE( fh->bufsize == BUFSIZ );
+ TESTCASE( setvbuf( fh, buffer, _IOFBF, BUFFERSIZE ) == 0 );
+#if 0
+ TESTCASE( fh->buffer == buffer );
+ TESTCASE( fh->bufsize == BUFFERSIZE );
+#endif
+ TESTCASE( ( fh->status & ( _IOFBF | _IONBF | _IOLBF ) ) == _IOFBF );
+ TESTCASE( fclose( fh ) == 0 );
+ /* line buffered, lib-supplied buffer */
+ TESTCASE( ( fh = fopen( filename, "w" ) ) != NULL );
+ TESTCASE( setvbuf( fh, NULL, _IOLBF, BUFFERSIZE ) == 0 );
+#if 0
+ TESTCASE( fh->buffer != buffer );
+ TESTCASE( fh->buffer != NULL );
+ TESTCASE( fh->bufsize == BUFFERSIZE );
+#endif
+ TESTCASE( ( fh->status & ( _IOFBF | _IONBF | _IOLBF ) ) == _IOLBF );
+ TESTCASE( fclose( fh ) == 0 );
+ /* not buffered, user-supplied buffer */
+ TESTCASE( ( fh = fopen( filename, "w" ) ) != NULL );
+ TESTCASE( setvbuf( fh, buffer, _IONBF, BUFFERSIZE ) == 0 );
+#if 0
+ TESTCASE( fh->buffer == NULL );
+ TESTCASE( fh->bufsize == 0 );
+#endif
+ TESTCASE( ( fh->status & ( _IOFBF | _IONBF | _IOLBF ) ) == _IONBF );
+ TESTCASE( fclose( fh ) == 0 );