Reece H. Dunn : cabinet: Make the fdi tests pass on Vista.

Alexandre Julliard julliard at winehq.org
Wed Feb 6 07:27:51 CST 2008


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

Author: Reece H. Dunn <msclrhd at gmail.com>
Date:   Sat Jan 26 10:34:45 2008 +0000

cabinet: Make the fdi tests pass on Vista.

---

 dlls/cabinet/tests/fdi.c |   73 +++++++++++++++++++++++++++++----------------
 1 files changed, 47 insertions(+), 26 deletions(-)

diff --git a/dlls/cabinet/tests/fdi.c b/dlls/cabinet/tests/fdi.c
index 7c10b3d..18745f2 100644
--- a/dlls/cabinet/tests/fdi.c
+++ b/dlls/cabinet/tests/fdi.c
@@ -92,10 +92,6 @@ static void test_FDICreate(void)
     HFDI hfdi;
     ERF erf;
 
-    erf.erfOper = 0xcafefeed;
-    erf.erfType = 0xdeadbabe;
-    erf.fError = 0xdecaface;
-
     /* native crashes if pfnalloc is NULL */
 
     /* FDICreate does not crash with a NULL pfnfree,
@@ -104,6 +100,9 @@ static void test_FDICreate(void)
     if (0)
     {
         SetLastError(0xdeadbeef);
+        erf.erfOper = 0xcafefeed;
+        erf.erfType = 0xdeadbabe;
+        erf.fError = 0xdecaface;
         hfdi = FDICreate(fdi_alloc, NULL, fdi_open, fdi_read,
                          fdi_write, fdi_close, fdi_seek,
                          cpuUNKNOWN, &erf);
@@ -118,99 +117,121 @@ static void test_FDICreate(void)
     }
 
     SetLastError(0xdeadbeef);
+    erf.erfOper = 0xcafefeed;
+    erf.erfType = 0xdeadbabe;
+    erf.fError = 0xdecaface;
     hfdi = FDICreate(fdi_alloc, fdi_free, NULL, fdi_read,
                      fdi_write, fdi_close, fdi_seek,
                      cpuUNKNOWN, &erf);
     ok(hfdi != NULL, "Expected non-NULL context\n");
     ok(GetLastError() == 0xdeadbeef,
        "Expected 0xdeadbeef, got %d\n", GetLastError());
-    ok(erf.erfOper == 0xcafefeed, "Expected 0xcafefeed, got %d\n", erf.erfOper);
-    ok(erf.erfType == 0xdeadbabe, "Expected 0xdeadbabe, got %d\n", erf.erfType);
-    ok(erf.fError == 0xdecaface, "Expected 0xdecaface, got %d\n", erf.fError);
+    ok((erf.erfOper == 0xcafefeed || erf.erfOper == 0 /* Vista */), "Expected 0xcafefeed or 0, got %d\n", erf.erfOper);
+    ok((erf.erfType == 0xdeadbabe || erf.erfType == 0 /* Vista */), "Expected 0xdeadbabe or 0, got %d\n", erf.erfType);
+    ok((erf.fError == 0xdecaface || erf.fError == 0 /* Vista */), "Expected 0xdecaface or 0, got %d\n", erf.fError);
 
     FDIDestroy(hfdi);
 
     SetLastError(0xdeadbeef);
+    erf.erfOper = 0xcafefeed;
+    erf.erfType = 0xdeadbabe;
+    erf.fError = 0xdecaface;
     hfdi = FDICreate(fdi_alloc, fdi_free, fdi_open, NULL,
                      fdi_write, fdi_close, fdi_seek,
                      cpuUNKNOWN, &erf);
     ok(hfdi != NULL, "Expected non-NULL context\n");
     ok(GetLastError() == 0xdeadbeef,
        "Expected 0xdeadbeef, got %d\n", GetLastError());
-    ok(erf.erfOper == 0xcafefeed, "Expected 0xcafefeed, got %d\n", erf.erfOper);
-    ok(erf.erfType == 0xdeadbabe, "Expected 0xdeadbabe, got %d\n", erf.erfType);
-    ok(erf.fError == 0xdecaface, "Expected 0xdecaface, got %d\n", erf.fError);
+    ok((erf.erfOper == 0xcafefeed || erf.erfOper == 0 /* Vista */), "Expected 0xcafefeed or 0, got %d\n", erf.erfOper);
+    ok((erf.erfType == 0xdeadbabe || erf.erfType == 0 /* Vista */), "Expected 0xdeadbabe or 0, got %d\n", erf.erfType);
+    ok((erf.fError == 0xdecaface || erf.fError == 0 /* Vista */), "Expected 0xdecaface or 0, got %d\n", erf.fError);
 
     FDIDestroy(hfdi);
 
     SetLastError(0xdeadbeef);
+    erf.erfOper = 0xcafefeed;
+    erf.erfType = 0xdeadbabe;
+    erf.fError = 0xdecaface;
     hfdi = FDICreate(fdi_alloc, fdi_free, fdi_open, fdi_read,
                      NULL, fdi_close, fdi_seek,
                      cpuUNKNOWN, &erf);
     ok(hfdi != NULL, "Expected non-NULL context\n");
     ok(GetLastError() == 0xdeadbeef,
        "Expected 0xdeadbeef, got %d\n", GetLastError());
-    ok(erf.erfOper == 0xcafefeed, "Expected 0xcafefeed, got %d\n", erf.erfOper);
-    ok(erf.erfType == 0xdeadbabe, "Expected 0xdeadbabe, got %d\n", erf.erfType);
-    ok(erf.fError == 0xdecaface, "Expected 0xdecaface, got %d\n", erf.fError);
+    ok((erf.erfOper == 0xcafefeed || erf.erfOper == 0 /* Vista */), "Expected 0xcafefeed or 0, got %d\n", erf.erfOper);
+    ok((erf.erfType == 0xdeadbabe || erf.erfType == 0 /* Vista */), "Expected 0xdeadbabe or 0, got %d\n", erf.erfType);
+    ok((erf.fError == 0xdecaface || erf.fError == 0 /* Vista */), "Expected 0xdecaface or 0, got %d\n", erf.fError);
 
     FDIDestroy(hfdi);
 
     SetLastError(0xdeadbeef);
+    erf.erfOper = 0xcafefeed;
+    erf.erfType = 0xdeadbabe;
+    erf.fError = 0xdecaface;
     hfdi = FDICreate(fdi_alloc, fdi_free, fdi_open, fdi_read,
                      fdi_write, NULL, fdi_seek,
                      cpuUNKNOWN, &erf);
     ok(hfdi != NULL, "Expected non-NULL context\n");
     ok(GetLastError() == 0xdeadbeef,
        "Expected 0xdeadbeef, got %d\n", GetLastError());
-    ok(erf.erfOper == 0xcafefeed, "Expected 0xcafefeed, got %d\n", erf.erfOper);
-    ok(erf.erfType == 0xdeadbabe, "Expected 0xdeadbabe, got %d\n", erf.erfType);
-    ok(erf.fError == 0xdecaface, "Expected 0xdecaface, got %d\n", erf.fError);
+    ok((erf.erfOper == 0xcafefeed || erf.erfOper == 0 /* Vista */), "Expected 0xcafefeed or 0, got %d\n", erf.erfOper);
+    ok((erf.erfType == 0xdeadbabe || erf.erfType == 0 /* Vista */), "Expected 0xdeadbabe or 0, got %d\n", erf.erfType);
+    ok((erf.fError == 0xdecaface || erf.fError == 0 /* Vista */), "Expected 0xdecaface or 0, got %d\n", erf.fError);
 
     FDIDestroy(hfdi);
 
     SetLastError(0xdeadbeef);
+    erf.erfOper = 0xcafefeed;
+    erf.erfType = 0xdeadbabe;
+    erf.fError = 0xdecaface;
     hfdi = FDICreate(fdi_alloc, fdi_free, fdi_open, fdi_read,
                      fdi_write, fdi_close, NULL,
                      cpuUNKNOWN, &erf);
     ok(hfdi != NULL, "Expected non-NULL context\n");
     ok(GetLastError() == 0xdeadbeef,
        "Expected 0xdeadbeef, got %d\n", GetLastError());
-    ok(erf.erfOper == 0xcafefeed, "Expected 0xcafefeed, got %d\n", erf.erfOper);
-    ok(erf.erfType == 0xdeadbabe, "Expected 0xdeadbabe, got %d\n", erf.erfType);
-    ok(erf.fError == 0xdecaface, "Expected 0xdecaface, got %d\n", erf.fError);
+    ok((erf.erfOper == 0xcafefeed || erf.erfOper == 0 /* Vista */), "Expected 0xcafefeed or 0, got %d\n", erf.erfOper);
+    ok((erf.erfType == 0xdeadbabe || erf.erfType == 0 /* Vista */), "Expected 0xdeadbabe or 0, got %d\n", erf.erfType);
+    ok((erf.fError == 0xdecaface || erf.fError == 0 /* Vista */), "Expected 0xdecaface or 0, got %d\n", erf.fError);
 
     FDIDestroy(hfdi);
 
     SetLastError(0xdeadbeef);
+    erf.erfOper = 0xcafefeed;
+    erf.erfType = 0xdeadbabe;
+    erf.fError = 0xdecaface;
     hfdi = FDICreate(fdi_alloc, fdi_free, fdi_open, fdi_read,
                      fdi_write, fdi_close, fdi_seek,
                      cpuUNKNOWN, NULL);
-    ok(hfdi != NULL, "Expected non-NULL context\n");
+    /* XP sets hfdi to a non-NULL value, but Vista sets it to NULL! */
     ok(GetLastError() == 0xdeadbeef,
        "Expected 0xdeadbeef, got %d\n", GetLastError());
-    ok(erf.erfOper == 0xcafefeed, "Expected 0xcafefeed, got %d\n", erf.erfOper);
-    ok(erf.erfType == 0xdeadbabe, "Expected 0xdeadbabe, got %d\n", erf.erfType);
-    ok(erf.fError == 0xdecaface, "Expected 0xdecaface, got %d\n", erf.fError);
+    /* NULL is passed to FDICreate instead of &erf, so don't retest the erf member values. */
 
     FDIDestroy(hfdi);
 
     /* bad cpu type */
     SetLastError(0xdeadbeef);
+    erf.erfOper = 0xcafefeed;
+    erf.erfType = 0xdeadbabe;
+    erf.fError = 0xdecaface;
     hfdi = FDICreate(fdi_alloc, fdi_free, fdi_open, fdi_read,
                      fdi_write, fdi_close, fdi_seek,
                      0xcafebabe, &erf);
     ok(hfdi != NULL, "Expected non-NULL context\n");
     ok(GetLastError() == 0xdeadbeef,
        "Expected 0xdeadbeef, got %d\n", GetLastError());
-    ok(erf.erfOper == 0xcafefeed, "Expected 0xcafefeed, got %d\n", erf.erfOper);
-    ok(erf.erfType == 0xdeadbabe, "Expected 0xdeadbabe, got %d\n", erf.erfType);
-    ok(erf.fError == 0xdecaface, "Expected 0xdecaface, got %d\n", erf.fError);
+    ok((erf.erfOper == 0xcafefeed || erf.erfOper == 0 /* Vista */), "Expected 0xcafefeed or 0, got %d\n", erf.erfOper);
+    ok((erf.erfType == 0xdeadbabe || erf.erfType == 0 /* Vista */), "Expected 0xdeadbabe or 0, got %d\n", erf.erfType);
+    ok((erf.fError == 0xdecaface || erf.fError == 0 /* Vista */), "Expected 0xdecaface or 0, got %d\n", erf.fError);
 
     FDIDestroy(hfdi);
 
     /* pfnalloc fails */
     SetLastError(0xdeadbeef);
+    erf.erfOper = 0xcafefeed;
+    erf.erfType = 0xdeadbabe;
+    erf.fError = 0xdecaface;
     hfdi = FDICreate(fdi_alloc_bad, fdi_free, fdi_open, fdi_read,
                      fdi_write, fdi_close, fdi_seek,
                      cpuUNKNOWN, &erf);




More information about the wine-cvs mailing list