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