-/* $Id$ */
-
/* _PDCLIB_rename( const char *, const char * )
This file is part of the Public Domain C Library (PDCLib).
{
switch ( errno )
{
+ /* See the comments on implementation-defined errno values in
+ <_PDCLIB_config.h>.
+ */
case EACCES:
case EFAULT:
case EIO:
case ENOTDIR:
case EPERM:
case EROFS:
- _PDCLIB_errno = _PDCLIB_EIO;
+ _PDCLIB_errno = _PDCLIB_ERROR;
break;
default:
- _PDCLIB_errno = _PDCLIB_EUNKNOWN;
+ /* This should be something like EUNKNOWN. */
+ _PDCLIB_errno = _PDCLIB_ERROR;
break;
}
return -1;
{
switch ( errno )
{
+ /* See the comments on implementation-defined errno values in
+ <_PDCLIB_config.h>.
+ */
case EACCES:
case EEXIST:
case EFAULT:
case EPERM:
case EROFS:
case EXDEV:
- _PDCLIB_errno = _PDCLIB_EIO;
+ _PDCLIB_errno = _PDCLIB_ERROR;
break;
default:
- _PDCLIB_errno = _PDCLIB_EUNKNOWN;
+ /* This should be something like EUNKNOWN. */
+ _PDCLIB_errno = _PDCLIB_ERROR;
break;
}
return EOF;
int main( void )
{
- char filename1[] = "touch testfile1";
- char filename2[] = "testfile2";
- remove( filename1 + 6 );
- remove( filename2 );
+#ifndef REGTEST
+ 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( ( 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( 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( 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 );
+#endif
return TEST_RESULTS;
}