advapi32: output information on failed LsaQueryInformationPolicy
tests
Robert Reif
reif at earthlink.net
Thu Aug 17 14:26:40 CDT 2006
-------------- next part --------------
diff -p -u -r1.9 Makefile.in
--- dlls/advapi32/tests/Makefile.in 2 Aug 2006 20:22:31 -0000 1.9
+++ dlls/advapi32/tests/Makefile.in 17 Aug 2006 14:44:18 -0000
@@ -3,7 +3,7 @@ TOPOBJDIR = ../../..
SRCDIR = @srcdir@
VPATH = @srcdir@
TESTDLL = advapi32.dll
-IMPORTS = advapi32 kernel32
+IMPORTS = advapi32 kernel32 ole32
EXTRALIBS = -luuid
CTESTS = \
diff -p -u -r1.6 lsa.c
--- dlls/advapi32/tests/lsa.c 16 Aug 2006 11:17:17 -0000 1.6
+++ dlls/advapi32/tests/lsa.c 17 Aug 2006 14:44:18 -0000
@@ -28,6 +28,9 @@
#include "winreg.h"
#include "winternl.h"
#include "ntsecapi.h"
+#include "sddl.h"
+#include "winnls.h"
+#include "objbase.h"
#define INITGUID
#include "guiddef.h"
#include "wine/test.h"
@@ -91,6 +94,25 @@ static void test_lsa(void)
ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy(PolicyPrimaryDomainInformation) failed, returned 0x%08lx\n", status);
if (status == STATUS_SUCCESS) {
ok(primary_domain_info->Sid==0,"Sid should be NULL on the local computer\n");
+ if (primary_domain_info->Sid) {
+ LPSTR strsid;
+ if (ConvertSidToStringSidA(primary_domain_info->Sid, &strsid))
+ {
+ if (primary_domain_info->Name.Buffer) {
+ LPSTR name = NULL;
+ UINT len;
+ len = WideCharToMultiByte( CP_ACP, 0, primary_domain_info->Name.Buffer, -1, NULL, 0, NULL, NULL );
+ name = LocalAlloc( 0, len );
+ WideCharToMultiByte( CP_ACP, 0, primary_domain_info->Name.Buffer, -1, name, len, NULL, NULL );
+ trace(" name: %s sid: %s\n", name, strsid);
+ LocalFree( name );
+ } else
+ trace(" name: NULL sid: %s\n", strsid);
+ LocalFree( strsid );
+ }
+ else
+ trace("invalid sid\n");
+ }
pLsaFreeMemory((LPVOID)primary_domain_info);
}
@@ -107,6 +129,44 @@ static void test_lsa(void)
if (status == STATUS_SUCCESS) {
ok(IsEqualGUID(&dns_domain_info->DomainGuid, &GUID_NULL), "DomainGUID should be GUID_NULL on local computer\n");
ok(dns_domain_info->Sid==0,"Sid should be NULL on the local computer\n");
+ if (dns_domain_info->Sid || !IsEqualGUID(&dns_domain_info->DomainGuid, &GUID_NULL)) {
+ LPSTR strsid = NULL;
+ LPSTR name = NULL;
+ LPSTR domain = NULL;
+ LPSTR forest = NULL;
+ LPSTR guidstr = NULL;
+ WCHAR guidstrW[64];
+ UINT len;
+ guidstr[0] = '\0';
+ ConvertSidToStringSidA(dns_domain_info->Sid, &strsid);
+ StringFromGUID2(&dns_domain_info->DomainGuid, guidstrW, sizeof(guidstrW)/sizeof(WCHAR));
+ len = WideCharToMultiByte( CP_ACP, 0, guidstrW, -1, NULL, 0, NULL, NULL );
+ guidstr = LocalAlloc( 0, len );
+ WideCharToMultiByte( CP_ACP, 0, guidstrW, -1, guidstr, len, NULL, NULL );
+ if (dns_domain_info->Name.Buffer) {
+ len = WideCharToMultiByte( CP_ACP, 0, dns_domain_info->Name.Buffer, -1, NULL, 0, NULL, NULL );
+ name = LocalAlloc( 0, len );
+ WideCharToMultiByte( CP_ACP, 0, dns_domain_info->Name.Buffer, -1, name, len, NULL, NULL );
+ }
+ if (dns_domain_info->DnsDomainName.Buffer) {
+ len = WideCharToMultiByte( CP_ACP, 0, dns_domain_info->DnsDomainName.Buffer, -1, NULL, 0, NULL, NULL );
+ domain = LocalAlloc( 0, len );
+ WideCharToMultiByte( CP_ACP, 0, dns_domain_info->DnsDomainName.Buffer, -1, name, len, NULL, NULL );
+ }
+ if (dns_domain_info->DnsForestName.Buffer) {
+ len = WideCharToMultiByte( CP_ACP, 0, dns_domain_info->DnsForestName.Buffer, -1, NULL, 0, NULL, NULL );
+ forest = LocalAlloc( 0, len );
+ WideCharToMultiByte( CP_ACP, 0, dns_domain_info->DnsForestName.Buffer, -1, name, len, NULL, NULL );
+ }
+ trace(" name: %s domain: %s forest: %s guid: %s sid: %s\n",
+ name ? name : "NULL", domain ? domain : "NULL",
+ forest ? forest : "NULL", guidstr, strsid ? strsid : "NULL");
+ LocalFree( name );
+ LocalFree( forest );
+ LocalFree( domain );
+ LocalFree( guidstr );
+ LocalFree( strsid );
+ }
pLsaFreeMemory((LPVOID)dns_domain_info);
}
More information about the wine-patches
mailing list