]> pd.if.org Git - pdclib/blobdiff - functions/stdio/freopen.c
wchar_t on POSIX is int, not short.
[pdclib] / functions / stdio / freopen.c
index 482b82025d225cf5d5cdbb2b1e9a2e0000177ba0..29d72eb77499b144be050080377ca7875720e971 100644 (file)
@@ -1,5 +1,3 @@
-/* $Id$ */
-
 /* freopen( const char *, const char *, FILE * )
 
    This file is part of the Public Domain C Library (PDCLib).
@@ -7,12 +5,12 @@
 */
 
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
 #ifndef REGTEST
 
-#include <_PDCLIB_glue.h>
-#include <stdlib.h>
-#include <string.h>
+#include "_PDCLIB_glue.h"
 
 struct _PDCLIB_file_t * freopen( const char * _PDCLIB_restrict filename, const char * _PDCLIB_restrict mode, struct _PDCLIB_file_t * _PDCLIB_restrict stream )
 {
@@ -77,11 +75,29 @@ struct _PDCLIB_file_t * freopen( const char * _PDCLIB_restrict filename, const c
 #endif
 
 #ifdef TEST
-#include <_PDCLIB_test.h>
+
+#include "_PDCLIB_test.h"
 
 int main( void )
 {
-    TESTCASE( NO_TESTDRIVER );
+    FILE * fin;
+    FILE * fout;
+    TESTCASE( ( fin = fopen( testfile1, "wb+" ) ) != NULL );
+    TESTCASE( fputc( 'x', fin ) == 'x' );
+    TESTCASE( fclose( fin ) == 0 );
+    TESTCASE( ( fin = freopen( testfile1, "rb", stdin ) ) != NULL );
+    TESTCASE( getchar() == 'x' );
+
+    TESTCASE( ( fout = freopen( testfile2, "wb+", stdout ) ) != NULL );
+    TESTCASE( putchar( 'x' ) == 'x' );
+    rewind( fout );
+    TESTCASE( fgetc( fout ) == 'x' );
+
+    TESTCASE( fclose( fin ) == 0 );
+    TESTCASE( fclose( fout ) == 0 );
+    TESTCASE( remove( testfile1 ) == 0 );
+    TESTCASE( remove( testfile2 ) == 0 );
+
     return TEST_RESULTS;
 }