Changelog: dlls/kernel/file.c: New DeleteFile test, account for DeleteFile Behaviour on R/O files -- Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Free Software: If you contribute nothing, expect nothing -- Index: wine/dlls/kernel/tests/file.c =================================================================== RCS file: /home/wine/wine/dlls/kernel/tests/file.c,v retrieving revision 1.2 diff -u -r1.2 file.c --- wine/dlls/kernel/tests/file.c 6 May 2002 20:12:55 -0000 1.2 +++ wine/dlls/kernel/tests/file.c 9 May 2002 20:12:54 -0000 @@ -47,6 +47,8 @@ UINT bytes_wanted; UINT i; + SetFileAttributesA(filename,FILE_ATTRIBUTE_NORMAL); /* be sure to remove stale files */ + DeleteFileA( filename ); filehandle = _lcreat( filename, 0 ); ok( HFILE_ERROR != filehandle, "couldn't create file. Wrong permissions on directory?" ); @@ -195,7 +197,7 @@ ok( DeleteFileA( filename ) != 0, "DeleteFileA complains." ); - filehandle = _lcreat( filename, 1 ); + filehandle = _lcreat( filename, 1 ); /* READONLY Delete should fail until attribute reset */ ok( HFILE_ERROR != filehandle, "couldn't create file!?" ); #if 0 /* FIXME: this fails on NT too */ @@ -206,8 +208,11 @@ ok( INVALID_HANDLE_VALUE != FindFirstFileA( filename, &search_results ), "should be able to find file" ); - ok( DeleteFileA( filename ) != 0, "DeleteFileA complains." ); + ok( DeleteFileA( filename ) == 0, "DeleteFileA unexpectedly succeeded" ); + + ok( SetFileAttributesA(filename,FILE_ATTRIBUTE_NORMAL), "SetFileAttributes failed"); + ok( DeleteFileA( filename ) != 0, "DeleteFileA complains." ); filehandle = _lcreat( filename, 2 ); ok( HFILE_ERROR != filehandle, "couldn't create file. Wrong permissions on directory?" ); @@ -226,7 +231,7 @@ } ok( DeleteFileA( filename ) != 0, "DeleteFileA complains." ); - + filehandle = _lcreat( filename, 4 ); ok( HFILE_ERROR != filehandle, "couldn't create file. Wrong permissions on directory?" ); @@ -314,6 +319,25 @@ /* TODO - add tests for the SHARE modes - use two processes to pull this off */ } +void test_DeleteFile( void ) +{ + DWORD len, errnmb; + + CHAR filename[MAX_PATH]; + INT res; + + /* Test if we can erase the running executable + More special cases are tested above + */ + len = GetModuleFileNameA(0,filename,MAX_PATH); + ok(len,"Can't get name of running executable"); + res=DeleteFileA(filename); + ok(!res,"Shouldn't succeed in deleting running executable"); + errnmb = GetLastError(); + ok(errnmb == ERROR_ACCESS_DENIED,"Got wrong error number %d expected %d", errnmb, ERROR_ACCESS_DENIED); + +} + START_TEST(file) { test__hread( ); @@ -322,4 +346,5 @@ test__lcreat( ); test__llseek( ); test__llopen( ); + test_DeleteFile( ); }