Juan Lang : crypt32: Actually compare chain status instead of doing a no-op comparison, and mark as todo the statuses that don't match in Wine.

Alexandre Julliard julliard at winehq.org
Fri Oct 17 07:25:55 CDT 2008


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Oct 16 14:04:27 2008 -0700

crypt32: Actually compare chain status instead of doing a no-op comparison, and mark as todo the statuses that don't match in Wine.

---

 dlls/crypt32/tests/chain.c |   47 +++++++++++++++++++++++++++----------------
 1 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/dlls/crypt32/tests/chain.c b/dlls/crypt32/tests/chain.c
index b219aed..bfaa802 100644
--- a/dlls/crypt32/tests/chain.c
+++ b/dlls/crypt32/tests/chain.c
@@ -1229,30 +1229,41 @@ typedef struct _ChainStatusCheck
 static void checkChainStatus(PCCERT_CHAIN_CONTEXT chain,
  const ChainStatusCheck *chainStatus, DWORD todo, DWORD testIndex)
 {
-    DWORD error = chainStatus->status.dwErrorStatus &
-     ~chainStatus->statusToIgnore.dwErrorStatus;
-    DWORD info = chainStatus->status.dwInfoStatus &
-     ~chainStatus->statusToIgnore.dwInfoStatus;
-
     ok(chain->cChain == chainStatus->cChain,
      "Chain %d: expected %d simple chains, got %d\n", testIndex,
      chainStatus->cChain, chain->cChain);
-    if (todo & TODO_ERROR && error != chainStatus->status.dwErrorStatus)
-        todo_wine ok(error == chainStatus->status.dwErrorStatus,
+    if (todo & TODO_ERROR &&
+     chain->TrustStatus.dwErrorStatus != chainStatus->status.dwErrorStatus)
+        todo_wine ok(chain->TrustStatus.dwErrorStatus ==
+         chainStatus->status.dwErrorStatus,
          "Chain %d: expected error %08x, got %08x\n",
-         testIndex, chainStatus->status.dwErrorStatus, error);
+         testIndex, chainStatus->status.dwErrorStatus,
+         chain->TrustStatus.dwErrorStatus);
     else
-        ok(error == chainStatus->status.dwErrorStatus,
+        ok(chain->TrustStatus.dwErrorStatus ==
+         chainStatus->status.dwErrorStatus ||
+         broken((chain->TrustStatus.dwErrorStatus &
+         ~chainStatus->statusToIgnore.dwErrorStatus) ==
+         chainStatus->status.dwErrorStatus),
          "Chain %d: expected error %08x, got %08x\n",
-         testIndex, chainStatus->status.dwErrorStatus, error);
-    if (todo & TODO_INFO && info != chainStatus->status.dwInfoStatus)
-        todo_wine ok(info == chainStatus->status.dwInfoStatus,
+         testIndex, chainStatus->status.dwErrorStatus,
+         chain->TrustStatus.dwErrorStatus);
+    if (todo & TODO_INFO &&
+     chain->TrustStatus.dwInfoStatus != chainStatus->status.dwInfoStatus)
+        todo_wine ok(chain->TrustStatus.dwInfoStatus ==
+         chainStatus->status.dwInfoStatus,
          "Chain %d: expected info %08x, got %08x\n",
-         testIndex, chainStatus->status.dwInfoStatus, info);
+         testIndex, chainStatus->status.dwInfoStatus,
+         chain->TrustStatus.dwInfoStatus);
     else
-        ok(info == chainStatus->status.dwInfoStatus,
+        ok(chain->TrustStatus.dwInfoStatus ==
+         chainStatus->status.dwInfoStatus ||
+         broken((chain->TrustStatus.dwInfoStatus &
+         ~chainStatus->statusToIgnore.dwInfoStatus) ==
+         chainStatus->status.dwInfoStatus),
          "Chain %d: expected info %08x, got %08x\n",
-         testIndex, chainStatus->status.dwInfoStatus, info);
+         testIndex, chainStatus->status.dwInfoStatus,
+         chain->TrustStatus.dwInfoStatus);
     if (chain->cChain == chainStatus->cChain)
     {
         DWORD i;
@@ -1521,7 +1532,7 @@ static ChainCheck chainCheck[] = {
      { CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT |
        CERT_TRUST_INVALID_BASIC_CONSTRAINTS | CERT_TRUST_IS_CYCLIC, 0 },
      1, simpleStatus9 },
-   TODO_INFO },
+   TODO_ERROR | TODO_INFO },
  { { sizeof(chain10) / sizeof(chain10[0]), chain10 },
    { { 0, CERT_TRUST_HAS_PREFERRED_ISSUER },
      { CERT_TRUST_IS_UNTRUSTED_ROOT, 0 }, 1, simpleStatus10 }, 0 },
@@ -1530,7 +1541,7 @@ static ChainCheck chainCheck[] = {
      { CERT_TRUST_IS_UNTRUSTED_ROOT, 0 }, 1, simpleStatus10 }, 0 },
  { { sizeof(chain12) / sizeof(chain12[0]), chain12 },
    { { 0, CERT_TRUST_HAS_PREFERRED_ISSUER },
-     { CERT_TRUST_IS_UNTRUSTED_ROOT, 0 }, 1, simpleStatus12 }, 0 },
+     { CERT_TRUST_IS_UNTRUSTED_ROOT, 0 }, 1, simpleStatus12 }, TODO_ERROR },
  { { sizeof(chain13) / sizeof(chain13[0]), chain13 },
    { { CERT_TRUST_IS_NOT_TIME_NESTED, CERT_TRUST_HAS_PREFERRED_ISSUER },
      { CERT_TRUST_IS_UNTRUSTED_ROOT, 0 }, 1, simpleStatus13 },
@@ -1566,7 +1577,7 @@ static ChainCheck chainCheckNoStore[] = {
      { CERT_TRUST_INVALID_BASIC_CONSTRAINTS | CERT_TRUST_IS_UNTRUSTED_ROOT |
        CERT_TRUST_IS_NOT_TIME_VALID, 0 },
      1, simpleStatus8NoStore },
-   TODO_INFO },
+   TODO_ERROR | TODO_INFO },
 };
 
 /* Wednesday, Oct 1, 2007 */




More information about the wine-cvs mailing list