Robert Reif : advapi32: Output information on failed LsaQueryInformationPolicy tests.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Aug 24 07:55:54 CDT 2006


Module: wine
Branch: master
Commit: 58ce495599b38464649cdda7d062732908e65fe9
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=58ce495599b38464649cdda7d062732908e65fe9

Author: Robert Reif <reif at earthlink.net>
Date:   Thu Aug 17 15:26:40 2006 -0400

advapi32: Output information on failed LsaQueryInformationPolicy tests.

---

 dlls/advapi32/tests/Makefile.in |    2 +
 dlls/advapi32/tests/lsa.c       |   60 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+), 1 deletions(-)

diff --git a/dlls/advapi32/tests/Makefile.in b/dlls/advapi32/tests/Makefile.in
index 875b0c7..d60b31d 100644
--- a/dlls/advapi32/tests/Makefile.in
+++ b/dlls/advapi32/tests/Makefile.in
@@ -3,7 +3,7 @@ TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 TESTDLL   = advapi32.dll
-IMPORTS   = advapi32 kernel32
+IMPORTS   = ole32 advapi32 kernel32
 EXTRALIBS = -luuid
 
 CTESTS = \
diff --git a/dlls/advapi32/tests/lsa.c b/dlls/advapi32/tests/lsa.c
index abc7f59..8158783 100644
--- a/dlls/advapi32/tests/lsa.c
+++ b/dlls/advapi32/tests/lsa.c
@@ -28,6 +28,9 @@ #include "winbase.h"
 #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-cvs mailing list