X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=platform%2Fexample%2Ffunctions%2F_PDCLIB%2Frename.c;h=a37eeb3464ed74a22d30a4ee4fbd7280479b1a8c;hp=3f770c9cc54cc32cc49ac3e47b6f5a586b4837e4;hb=ce0e5d8cd76b50f239fb8e95170502b146247b35;hpb=393020b6e48719d27699dea6b29e53025bbd5123 diff --git a/platform/example/functions/_PDCLIB/rename.c b/platform/example/functions/_PDCLIB/rename.c index 3f770c9..a37eeb3 100644 --- a/platform/example/functions/_PDCLIB/rename.c +++ b/platform/example/functions/_PDCLIB/rename.c @@ -29,6 +29,9 @@ int _PDCLIB_rename( const char * old, const char * new ) { switch ( errno ) { + /* See the comments on implementation-defined errno values in + <_PDCLIB_config.h>. + */ case EACCES: case EFAULT: case EIO: @@ -40,10 +43,11 @@ int _PDCLIB_rename( const char * old, const char * new ) 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; @@ -57,6 +61,9 @@ int _PDCLIB_rename( const char * old, const char * new ) { switch ( errno ) { + /* See the comments on implementation-defined errno values in + <_PDCLIB_config.h>. + */ case EACCES: case EEXIST: case EFAULT: @@ -71,10 +78,11 @@ int _PDCLIB_rename( const char * old, const char * new ) 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; @@ -90,38 +98,41 @@ int _PDCLIB_rename( const char * old, const char * new ) 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( ( 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 ); return TEST_RESULTS; }