Module: wine Branch: master Commit: 0edae1c9eaf7d49fb524e3a392b7ed2949c7edce URL: http://source.winehq.org/git/wine.git/?a=commit;h=0edae1c9eaf7d49fb524e3a392...
Author: Reece H. Dunn msclrhd@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);