Module: wine Branch: master Commit: 4e8b83dcde670f03ed381be2583a88e6313f39d7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4e8b83dcde670f03ed381be258...
Author: Paul Vriens paul.vriens.wine@gmail.com Date: Tue Aug 14 11:05:04 2007 +0200
advapi32/tests: Make tests run again on win95.
---
dlls/advapi32/tests/security.c | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c index 1595930..a49662c 100644 --- a/dlls/advapi32/tests/security.c +++ b/dlls/advapi32/tests/security.c @@ -55,6 +55,9 @@ static BOOL (WINAPI *pConvertStringSecurityDescriptorToSecurityDescriptorA)(LPCS PSECURITY_DESCRIPTOR*, PULONG ); typedef BOOL (WINAPI *fnGetFileSecurityA)(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD); +static DWORD (WINAPI *pGetNamedSecurityInfoA)(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, + PSID*, PSID*, PACL*, PACL*, + PSECURITY_DESCRIPTOR*); typedef DWORD (WINAPI *fnRtlAdjustPrivilege)(ULONG,BOOLEAN,BOOLEAN,PBOOLEAN); typedef BOOL (WINAPI *fnCreateWellKnownSid)(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*); typedef BOOL (WINAPI *fnDuplicateTokenEx)(HANDLE,DWORD,LPSECURITY_ATTRIBUTES, @@ -65,6 +68,7 @@ typedef NTSTATUS (WINAPI *fnLsaClose)(LSA_HANDLE); typedef NTSTATUS (WINAPI *fnLsaFreeMemory)(PVOID); typedef NTSTATUS (WINAPI *fnLsaOpenPolicy)(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE); static NTSTATUS (WINAPI *pNtQueryObject)(HANDLE,OBJECT_INFORMATION_CLASS,PVOID,ULONG,PULONG); +static DWORD (WINAPI *pSetEntriesInAclW)(ULONG, PEXPLICIT_ACCESSW, PACL, PACL*);
static HMODULE hmod; static int myARGC; @@ -102,6 +106,8 @@ static void init(void) hmod = GetModuleHandle("advapi32.dll"); pConvertStringSecurityDescriptorToSecurityDescriptorA = (void *)GetProcAddress(hmod, "ConvertStringSecurityDescriptorToSecurityDescriptorA" ); + pGetNamedSecurityInfoA = (void *)GetProcAddress(hmod, "GetNamedSecurityInfoA"); + pSetEntriesInAclW = (void *)GetProcAddress(hmod, "SetEntriesInAclW");
myARGC = winetest_get_mainargs( &myARGV ); } @@ -1714,7 +1720,13 @@ static void test_SetEntriesInAcl(void) ACL *acl = (ACL*)0xdeadbeef; DWORD res;
- res = SetEntriesInAclW(0, NULL, NULL, &acl); + if (!pSetEntriesInAclW) + { + skip("SetEntriesInAclW is not available\n"); + return; + } + + res = pSetEntriesInAclW(0, NULL, NULL, &acl); if(res == ERROR_CALL_NOT_IMPLEMENTED) { skip("SetEntriesInAclW is not implemented\n"); @@ -1737,11 +1749,17 @@ static void test_GetNamedSecurityInfoA(void) BOOL ret; CHAR windows_dir[MAX_PATH];
+ if (!pGetNamedSecurityInfoA) + { + skip("GetNamedSecurityInfoA is not available\n"); + return; + } + ret = GetWindowsDirectoryA(windows_dir, MAX_PATH); ok(ret, "GetWindowsDirectory failed with error %d\n", GetLastError());
SetLastError(0xdeadbeef); - error = GetNamedSecurityInfoA(windows_dir, SE_FILE_OBJECT, + error = pGetNamedSecurityInfoA(windows_dir, SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION|DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL, &pSecDesc); if (error != ERROR_SUCCESS && (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED))