#ifndef REGTEST
struct _PDCLIB_file_t * file1;
struct _PDCLIB_file_t * file2;
- remove( "testing/testfile1" );
- remove( "testing/testfile2" );
+ remove( testfile1 );
+ remove( testfile2 );
TESTCASE( _PDCLIB_filelist == stdin );
- TESTCASE( ( file1 = fopen( "testing/testfile1", "w" ) ) != NULL );
+ TESTCASE( ( file1 = fopen( testfile1, "w" ) ) != NULL );
TESTCASE( _PDCLIB_filelist == file1 );
- TESTCASE( ( file2 = fopen( "testing/testfile2", "w" ) ) != NULL );
+ TESTCASE( ( file2 = fopen( testfile2, "w" ) ) != NULL );
TESTCASE( _PDCLIB_filelist == file2 );
TESTCASE( fclose( file2 ) == 0 );
TESTCASE( _PDCLIB_filelist == file1 );
- TESTCASE( ( file2 = fopen( "testing/testfile1", "w" ) ) != NULL );
+ TESTCASE( ( file2 = fopen( testfile1, "w" ) ) != NULL );
TESTCASE( _PDCLIB_filelist == file2 );
TESTCASE( fclose( file1 ) == 0 );
TESTCASE( _PDCLIB_filelist == file2 );
TESTCASE( fclose( file2 ) == 0 );
TESTCASE( _PDCLIB_filelist == stdin );
- remove( "testing/testfile1" );
- remove( "testing/testfile2" );
+ remove( testfile1 );
+ remove( testfile2 );
#else
puts( " NOTEST fclose() test driver is PDCLib-specific." );
#endif
my system is at once less forgiving (segfaults on mode NULL) and more
forgiving (accepts undefined modes).
*/
- remove( "testing/testfile" );
+ FILE * fh;
+ remove( testfile );
TESTCASE_NOREG( fopen( NULL, NULL ) == NULL );
TESTCASE( fopen( NULL, "w" ) == NULL );
TESTCASE_NOREG( fopen( "", NULL ) == NULL );
TESTCASE( fopen( "", "w" ) == NULL );
TESTCASE( fopen( "foo", "" ) == NULL );
- TESTCASE_NOREG( fopen( "testing/testfile", "wq" ) == NULL ); /* Undefined mode */
- TESTCASE_NOREG( fopen( "testing/testfile", "wr" ) == NULL ); /* Undefined mode */
- TESTCASE( fopen( "testing/testfile", "w" ) != NULL );
- remove( "testing/testfile" );
+ TESTCASE_NOREG( fopen( testfile, "wq" ) == NULL ); /* Undefined mode */
+ TESTCASE_NOREG( fopen( testfile, "wr" ) == NULL ); /* Undefined mode */
+ TESTCASE( ( fh = fopen( testfile, "w" ) ) != NULL );
+ TESTCASE( fclose( fh ) == 0 );
+ remove( testfile );
return TEST_RESULTS;
}
*/
int fh;
char buffer[ 10 ];
- remove( "testfile" );
+ remove( testfile );
/* Trying to read non-existent file. */
- TESTCASE( _PDCLIB_open( "testfile", _PDCLIB_FREAD ) == _PDCLIB_NOHANDLE );
+ TESTCASE( _PDCLIB_open( testfile, _PDCLIB_FREAD ) == _PDCLIB_NOHANDLE );
/* Writing to file, trying to read from it. */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FWRITE ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FWRITE ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "test", 4 ) == 4 );
TESTCASE( lseek( fh, 0, SEEK_SET ) == 0 );
TESTCASE( read( fh, buffer, 4 ) == -1 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Reading from file, trying to write to it. */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FREAD ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FREAD ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "test", 4 ) == -1 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Appending to file, trying to read from it. */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FAPPEND ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FAPPEND ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "app", 3 ) == 3 );
TESTCASE( lseek( fh, 0, SEEK_SET ) == 0 );
TESTCASE( read( fh, buffer, 10 ) == -1 );
TESTCASE( write( fh, "end", 3 ) == 3 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Reading and writing from file ("r+"). */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FREAD | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FREAD | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
TESTCASE( read( fh, buffer, 10 ) == 10 );
TESTCASE( memcmp( buffer, "testappend", 10 ) == 0 );
TESTCASE( lseek( fh, 0, SEEK_SET ) == 0 );
TESTCASE( memcmp( buffer, "wedoappend", 10 ) == 0 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Writing and reading from file ("w+"). */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FWRITE | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FWRITE | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "test", 4 ) == 4 );
TESTCASE( lseek( fh, 1, SEEK_SET ) == 1 );
TESTCASE( read( fh, buffer, 2 ) == 2 );
TESTCASE( memcmp( buffer, "tessie", 6 ) == 0 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Appending and reading from file ("a+"). */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FAPPEND | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FAPPEND | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "baby", 4 ) == 4 );
TESTCASE( lseek( fh, 0, SEEK_SET ) == 0 );
TESTCASE( read( fh, buffer, 10 ) == 10 );
TESTCASE( memcmp( buffer, "tessiebaby", 10 ) == 0 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Cleaning up. */
- TESTCASE( remove( "testfile" ) == 0 );
+ TESTCASE( remove( testfile ) == 0 );
return TEST_RESULTS;
}
int main( void )
{
- char filename1[] = "touch testfile1";
- char filename2[] = "testfile2";
FILE * file;
- remove( filename1 + 6 );
- remove( filename2 );
+ remove( testfile1 );
+ remove( testfile2 );
/* check that neither file exists */
- TESTCASE( fopen( filename1 + 6, "r" ) == NULL );
- TESTCASE( fopen( filename2, "r" ) == NULL );
+ TESTCASE( fopen( testfile1, "r" ) == NULL );
+ TESTCASE( fopen( testfile2, "r" ) == NULL );
/* rename file 1 to file 2 - expected to fail */
- TESTCASE( _PDCLIB_rename( filename1 + 6, filename2 ) == -1 );
+ TESTCASE( _PDCLIB_rename( testfile1, testfile2 ) == -1 );
/* create file 1 */
- system( filename1 );
+ TESTCASE( ( file = fopen( testfile1, "w" ) ) != NULL );
+ TESTCASE( fputc( 'x', file ) == 'x' );
+ TESTCASE( fclose( file ) == 0 );
/* check that file 1 exists */
- TESTCASE( ( file = fopen( filename1 + 6, "r" ) ) != NULL );
+ TESTCASE( ( file = fopen( testfile1, "r" ) ) != NULL );
TESTCASE( fclose( file ) == 0 );
/* rename file 1 to file 2 */
- TESTCASE( _PDCLIB_rename( filename1 + 6, filename2 ) == 0 );
+ TESTCASE( _PDCLIB_rename( testfile1, testfile2 ) == 0 );
/* check that file 2 exists, file 1 does not */
- TESTCASE( fopen( filename1 + 6, "r" ) == NULL );
- TESTCASE( ( file = fopen( filename2, "r" ) ) != NULL );
+ TESTCASE( fopen( testfile1, "r" ) == NULL );
+ TESTCASE( ( file = fopen( testfile2, "r" ) ) != NULL );
TESTCASE( fclose( file ) == 0 );
/* create another file 1 */
- system( filename1 );
+ TESTCASE( ( file = fopen( testfile1, "w" ) ) != NULL );
+ TESTCASE( fputc( 'x', file ) == 'x' );
+ TESTCASE( fclose( file ) == 0 );
/* check that file 1 exists */
- TESTCASE( ( file = fopen( filename1 + 6, "r" ) ) != NULL );
+ TESTCASE( ( file = fopen( testfile1, "r" ) ) != NULL );
TESTCASE( fclose( file ) == 0 );
/* rename file 1 to file 2 - expected to fail, see comment in
_PDCLIB_rename() itself.
*/
- TESTCASE( _PDCLIB_rename( filename1 + 6, filename2 ) == -1 );
+ TESTCASE( _PDCLIB_rename( testfile1, testfile2 ) == -1 );
/* remove both files */
- remove( filename1 + 6 );
- remove( filename2 );
- /* check that they're gone */
- TESTCASE( fopen( filename1 + 6, "r" ) == NULL );
- TESTCASE( fopen( filename2, "r" ) == NULL );
+ remove( testfile1 );
+ remove( testfile2 );
return TEST_RESULTS;
}
*/
int fh;
char buffer[ 10 ];
- remove( "testfile" );
+ remove( testfile );
/* Trying to read non-existent file. */
- TESTCASE( _PDCLIB_open( "testfile", _PDCLIB_FREAD ) == _PDCLIB_NOHANDLE );
+ TESTCASE( _PDCLIB_open( testfile, _PDCLIB_FREAD ) == _PDCLIB_NOHANDLE );
/* Writing to file, trying to read from it. */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FWRITE ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FWRITE ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "test", 4 ) == 4 );
TESTCASE( lseek( fh, 0, SEEK_SET ) == 0 );
TESTCASE( read( fh, buffer, 4 ) == -1 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Reading from file, trying to write to it. */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FREAD ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FREAD ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "test", 4 ) == -1 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Appending to file, trying to read from it. */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FAPPEND ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FAPPEND ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "app", 3 ) == 3 );
TESTCASE( lseek( fh, 0, SEEK_SET ) == 0 );
TESTCASE( read( fh, buffer, 10 ) == -1 );
TESTCASE( write( fh, "end", 3 ) == 3 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Reading and writing from file ("r+"). */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FREAD | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FREAD | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
TESTCASE( read( fh, buffer, 10 ) == 10 );
TESTCASE( memcmp( buffer, "testappend", 10 ) == 0 );
TESTCASE( lseek( fh, 0, SEEK_SET ) == 0 );
TESTCASE( memcmp( buffer, "wedoappend", 10 ) == 0 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Writing and reading from file ("w+"). */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FWRITE | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FWRITE | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "test", 4 ) == 4 );
TESTCASE( lseek( fh, 1, SEEK_SET ) == 1 );
TESTCASE( read( fh, buffer, 2 ) == 2 );
TESTCASE( memcmp( buffer, "tessie", 6 ) == 0 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Appending and reading from file ("a+"). */
- TESTCASE( ( fh = _PDCLIB_open( "testfile", _PDCLIB_FAPPEND | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
+ TESTCASE( ( fh = _PDCLIB_open( testfile, _PDCLIB_FAPPEND | _PDCLIB_FRW ) ) != _PDCLIB_NOHANDLE );
TESTCASE( write( fh, "baby", 4 ) == 4 );
TESTCASE( lseek( fh, 0, SEEK_SET ) == 0 );
TESTCASE( read( fh, buffer, 10 ) == 10 );
TESTCASE( memcmp( buffer, "tessiebaby", 10 ) == 0 );
TESTCASE( _PDCLIB_close( fh ) == 0 );
/* Cleaning up. */
- TESTCASE( remove( "testfile" ) == 0 );
+ TESTCASE( remove( testfile ) == 0 );
return TEST_RESULTS;
}
int main( void )
{
- char filename1[] = "touch testfile1";
- char filename2[] = "testfile2";
- remove( filename1 + 6 );
- remove( filename2 );
+ FILE * file;
+ remove( testfile1 );
+ remove( testfile2 );
/* check that neither file exists */
- TESTCASE( fopen( filename1 + 6, "r" ) == NULL );
- TESTCASE( fopen( filename2, "r" ) == NULL );
+ TESTCASE( fopen( testfile1, "r" ) == NULL );
+ TESTCASE( fopen( testfile2, "r" ) == NULL );
/* rename file 1 to file 2 - expected to fail */
- TESTCASE( _PDCLIB_rename( filename1 + 6, filename2 ) == -1 );
+ TESTCASE( _PDCLIB_rename( testfile1, testfile2 ) == -1 );
/* create file 1 */
- system( filename1 );
+ TESTCASE( ( file = fopen( testfile1, "w" ) ) != NULL );
+ TESTCASE( fputc( 'x', file ) == 'x' );
+ TESTCASE( fclose( file ) == 0 );
/* check that file 1 exists */
- TESTCASE( fopen( filename1 + 6, "r" ) != NULL );
+ TESTCASE( fopen( testfile1, "r" ) != NULL );
/* rename file 1 to file 2 */
- TESTCASE( _PDCLIB_rename( filename1 + 6, filename2 ) == 0 );
+ TESTCASE( _PDCLIB_rename( testfile1, testfile2 ) == 0 );
/* check that file 2 exists, file 1 does not */
- TESTCASE( fopen( filename1 + 6, "r" ) == NULL );
- TESTCASE( fopen( filename2, "r" ) != NULL );
+ TESTCASE( fopen( testfile1, "r" ) == NULL );
+ TESTCASE( fopen( testfile2, "r" ) != NULL );
/* create another file 1 */
- system( filename1 );
+ TESTCASE( ( file = fopen( testfile1, "w" ) ) != NULL );
+ TESTCASE( fputc( 'x', file ) == 'x' );
+ TESTCASE( fclose( file ) == 0 );
/* check that file 1 exists */
- TESTCASE( fopen( filename1 + 6, "r" ) != NULL );
+ TESTCASE( ( file = fopen( testfile1, "r" ) ) != NULL );
+ TESTCASE( fclose( file ) == 0 );
/* rename file 1 to file 2 - expected to fail, see comment in
_PDCLIB_rename() itself.
*/
- TESTCASE( _PDCLIB_rename( filename1 + 6, filename2 ) == -1 );
+ TESTCASE( _PDCLIB_rename( testfile1, testfile2 ) == -1 );
/* remove both files */
- remove( filename1 + 6 );
- remove( filename2 );
- /* check that they're gone */
- TESTCASE( fopen( filename1 + 6, "r" ) == NULL );
- TESTCASE( fopen( filename2, "r" ) == NULL );
+ remove( testfile1 );
+ remove( testfile2 );
return TEST_RESULTS;
}
#include <stdio.h>
+/* Some strings used for <string.h> and <stdlib.h> testing. */
static char const abcde[] = "abcde";
static char const abcdx[] = "abcdx";
static char const teststring[] = "1234567890\nABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz\n";
+
+/* Temporary file names */
static char const testfile[]="testing/testfile";
static char const testfile1[]="testing/testfile1";
static char const testfile2[]="testing/testfile2";
static int TEST_RESULTS = 0;
+/* TESTCASE() - generic test */
#define TESTCASE( x ) if ( x ) {} \
else { TEST_RESULTS += 1; printf( "FAILED: " __FILE__ ", line %d - %s\n", __LINE__, #x ); }
+/* TESTCASE_NOREG() - PDCLib-only test */
+#ifndef REGTEST
+#define TESTCASE_NOREG( x ) TESTCASE( x )
+#else
+#define TESTCASE_NOREG( x )
+#endif
+
+/* ...printf() tests */
#if defined( FPRINTF_FUNCTION )
static char result_buffer[ 1000 ];
#define RESULT_MISMATCH( act, exp ) \
} \
} while ( 0 )
-#ifndef REGTEST
-#define TESTCASE_NOREG( x ) TESTCASE( x )
-#else
-#define TESTCASE_NOREG( x )
-#endif
+/* ...scanf() tests */
+/* TODO: t.b.d. */