winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
February 2010
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
783 discussions
Start a n
N
ew thread
Andrew Nguyen : mapi32/tests: Centralize utility function pointer initialization.
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: 5ed70a69df77b8e32391628f30c64a6fd237cc5f URL:
http://source.winehq.org/git/wine.git/?a=commit;h=5ed70a69df77b8e32391628f3…
Author: Andrew Nguyen <arethusa26(a)gmail.com> Date: Sat Jan 30 18:58:24 2010 -0600 mapi32/tests: Centralize utility function pointer initialization. --- dlls/mapi32/tests/util.c | 27 ++++++++++++++++----------- 1 files changed, 16 insertions(+), 11 deletions(-) diff --git a/dlls/mapi32/tests/util.c b/dlls/mapi32/tests/util.c index a638cff..7450efe 100644 --- a/dlls/mapi32/tests/util.c +++ b/dlls/mapi32/tests/util.c @@ -40,11 +40,25 @@ static ULONG (WINAPI *pUlFromSzHex)(LPCSTR); static ULONG (WINAPI *pCbOfEncoded)(LPCSTR); static BOOL (WINAPI *pIsBadBoundedStringPtr)(LPCSTR,ULONG); +static void init_function_pointers(void) +{ + hMapi32 = LoadLibraryA("mapi32.dll"); + + pScInitMapiUtil = (void*)GetProcAddress(hMapi32, "ScInitMapiUtil@4"); + pSwapPword = (void*)GetProcAddress(hMapi32, "SwapPword@8"); + pSwapPlong = (void*)GetProcAddress(hMapi32, "SwapPlong@8"); + pHexFromBin = (void*)GetProcAddress(hMapi32, "HexFromBin@12"); + pFBinFromHex = (void*)GetProcAddress(hMapi32, "FBinFromHex@8"); + pUFromSz = (void*)GetProcAddress(hMapi32, "UFromSz@4"); + pUlFromSzHex = (void*)GetProcAddress(hMapi32, "UlFromSzHex@4"); + pCbOfEncoded = (void*)GetProcAddress(hMapi32, "CbOfEncoded@4"); + pIsBadBoundedStringPtr = (void*)GetProcAddress(hMapi32, "IsBadBoundedStringPtr@8"); +} + static void test_SwapPword(void) { USHORT shorts[3]; - pSwapPword = (void*)GetProcAddress(hMapi32, "SwapPword@8"); if (!pSwapPword) { win_skip("SwapPword is not available\n"); @@ -64,7 +78,6 @@ static void test_SwapPlong(void) { ULONG longs[3]; - pSwapPlong = (void*)GetProcAddress(hMapi32, "SwapPlong@8"); if (!pSwapPlong) { win_skip("SwapPlong is not available\n"); @@ -95,8 +108,6 @@ static void test_HexFromBin(void) BOOL bOk; int i; - pHexFromBin = (void*)GetProcAddress(hMapi32, "HexFromBin@12"); - pFBinFromHex = (void*)GetProcAddress(hMapi32, "FBinFromHex@8"); if (!pHexFromBin || !pFBinFromHex) { win_skip("Hexadecimal conversion functions are not available\n"); @@ -121,7 +132,6 @@ static void test_HexFromBin(void) static void test_UFromSz(void) { - pUFromSz = (void*)GetProcAddress(hMapi32, "UFromSz@4"); if (!pUFromSz) { win_skip("UFromSz is not available\n"); @@ -137,7 +147,6 @@ static void test_UFromSz(void) static void test_UlFromSzHex(void) { - pUlFromSzHex = (void*)GetProcAddress(hMapi32, "UlFromSzHex@4"); if (!pUlFromSzHex) { win_skip("UlFromSzHex is not available\n"); @@ -156,7 +165,6 @@ static void test_CbOfEncoded(void) char buff[129]; unsigned int i; - pCbOfEncoded = (void*)GetProcAddress(hMapi32, "CbOfEncoded@4"); if (!pCbOfEncoded) { win_skip("CbOfEncoded is not available\n"); @@ -178,7 +186,6 @@ static void test_CbOfEncoded(void) static void test_IsBadBoundedStringPtr(void) { - pIsBadBoundedStringPtr = (void*)GetProcAddress(hMapi32, "IsBadBoundedStringPtr@8"); if (!pIsBadBoundedStringPtr) { win_skip("IsBadBoundedStringPtr is not available\n"); @@ -200,9 +207,7 @@ START_TEST(util) return; } - hMapi32 = LoadLibraryA("mapi32.dll"); - - pScInitMapiUtil = (void*)GetProcAddress(hMapi32, "ScInitMapiUtil@4"); + init_function_pointers(); if (!pScInitMapiUtil) {
1
0
0
0
Andrew Nguyen : mapi32/tests: Invoke MAPIInitialize before performing the FPropContainsProp tests.
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: 4ed80f3bcb0b090d29af0dbbb730a11fe59136fb URL:
http://source.winehq.org/git/wine.git/?a=commit;h=4ed80f3bcb0b090d29af0dbbb…
Author: Andrew Nguyen <arethusa26(a)gmail.com> Date: Sat Jan 30 18:58:11 2010 -0600 mapi32/tests: Invoke MAPIInitialize before performing the FPropContainsProp tests. This avoids crashes with the native Outlook extended MAPI provider. --- dlls/mapi32/tests/prop.c | 25 +++++++++++++++++++++---- 1 files changed, 21 insertions(+), 4 deletions(-) diff --git a/dlls/mapi32/tests/prop.c b/dlls/mapi32/tests/prop.c index 8c64245..15d6d98 100644 --- a/dlls/mapi32/tests/prop.c +++ b/dlls/mapi32/tests/prop.c @@ -32,6 +32,7 @@ static HMODULE hMapi32 = 0; static SCODE (WINAPI *pScInitMapiUtil)(ULONG); +static void (WINAPI *pDeinitMapiUtil)(void); static SCODE (WINAPI *pPropCopyMore)(LPSPropValue,LPSPropValue,ALLOCATEMORE*,LPVOID); static ULONG (WINAPI *pUlPropSize)(LPSPropValue); static BOOL (WINAPI *pFPropContainsProp)(LPSPropValue,LPSPropValue,ULONG); @@ -53,7 +54,9 @@ static SCODE (WINAPI *pCreateIProp)(LPCIID,ALLOCATEBUFFER*,ALLOCATEMORE*, FREEBUFFER*,LPVOID,LPPROPDATA*); static SCODE (WINAPI *pMAPIAllocateBuffer)(ULONG, LPVOID); static SCODE (WINAPI *pMAPIAllocateMore)(ULONG, LPVOID, LPVOID); +static SCODE (WINAPI *pMAPIInitialize)(LPVOID); static SCODE (WINAPI *pMAPIFreeBuffer)(LPVOID); +static void (WINAPI *pMAPIUninitialize)(void); static BOOL InitFuncPtrs(void) { @@ -79,13 +82,15 @@ static BOOL InitFuncPtrs(void) pCreateIProp = (void*)GetProcAddress(hMapi32, "CreateIProp@24"); pScInitMapiUtil = (void*)GetProcAddress(hMapi32, "ScInitMapiUtil@4"); + pDeinitMapiUtil = (void*)GetProcAddress(hMapi32, "DeinitMapiUtil@0"); pMAPIAllocateBuffer = (void*)GetProcAddress(hMapi32, "MAPIAllocateBuffer"); pMAPIAllocateMore = (void*)GetProcAddress(hMapi32, "MAPIAllocateMore"); pMAPIFreeBuffer = (void*)GetProcAddress(hMapi32, "MAPIFreeBuffer"); - if(pScInitMapiUtil && pMAPIAllocateBuffer && pMAPIAllocateMore && pMAPIFreeBuffer) - return TRUE; - else - return FALSE; + pMAPIInitialize = (void*)GetProcAddress(hMapi32, "MAPIInitialize"); + pMAPIUninitialize = (void*)GetProcAddress(hMapi32, "MAPIUninitialize"); + + return pMAPIAllocateBuffer && pMAPIAllocateMore && pMAPIFreeBuffer && + pScInitMapiUtil && pDeinitMapiUtil; } /* FIXME: Test PT_I2, PT_I4, PT_R4, PT_R8, PT_CURRENCY, PT_APPTIME, PT_SYSTIME, @@ -1441,7 +1446,17 @@ START_TEST(prop) test_PropCopyMore(); test_UlPropSize(); + + /* We call MAPIInitialize here for the benefit of native extended MAPI + * providers which crash in the FPropContainsProp tests when MAPIInitialize + * has not been called. Since MAPIInitialize is irrelevant for FPropContainsProp + * on Wine, we do not care whether MAPIInitialize succeeds. */ + if (pMAPIInitialize) + ret = pMAPIInitialize(NULL); test_FPropContainsProp(); + if (pMAPIUninitialize && ret == S_OK) + pMAPIUninitialize(); + test_FPropCompareProp(); test_LPropCompareProp(); test_PpropFindProp(); @@ -1457,5 +1472,7 @@ START_TEST(prop) test_FBadColumnSet(); test_IProp(); + + pDeinitMapiUtil(); FreeLibrary(hMapi32); }
1
0
0
0
Andrew Nguyen : pdh: Implement and test PdhGetDllVersion.
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: 2da6570ca4cb9cf277c0504b2cbe2cfd84d48956 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2da6570ca4cb9cf277c0504b2…
Author: Andrew Nguyen <arethusa26(a)gmail.com> Date: Sat Jan 30 18:24:52 2010 -0600 pdh: Implement and test PdhGetDllVersion. --- dlls/pdh/pdh.spec | 2 +- dlls/pdh/pdh_main.c | 13 +++++++++++++ dlls/pdh/tests/pdh.c | 23 +++++++++++++++++++++++ include/pdh.h | 5 +++++ 4 files changed, 42 insertions(+), 1 deletions(-) diff --git a/dlls/pdh/pdh.spec b/dlls/pdh/pdh.spec index 3d75bb1..b475d53 100644 --- a/dlls/pdh/pdh.spec +++ b/dlls/pdh/pdh.spec @@ -57,7 +57,7 @@ @ stub PdhGetDefaultPerfObjectHA @ stub PdhGetDefaultPerfObjectHW @ stub PdhGetDefaultPerfObjectW -@ stub PdhGetDllVersion +@ stdcall PdhGetDllVersion(ptr) @ stub PdhGetFormattedCounterArrayA @ stub PdhGetFormattedCounterArrayW @ stdcall PdhGetFormattedCounterValue(ptr long ptr ptr) diff --git a/dlls/pdh/pdh_main.c b/dlls/pdh/pdh_main.c index fd6deba..bdf83a9 100644 --- a/dlls/pdh/pdh_main.c +++ b/dlls/pdh/pdh_main.c @@ -726,6 +726,19 @@ PDH_STATUS WINAPI PdhGetCounterTimeBase( PDH_HCOUNTER handle, LONGLONG *base ) } /*********************************************************************** + * PdhGetDllVersion (PDH.@) + */ +PDH_STATUS WINAPI PdhGetDllVersion( LPDWORD version ) +{ + if (!version) + return PDH_INVALID_ARGUMENT; + + *version = PDH_VERSION; + + return ERROR_SUCCESS; +} + +/*********************************************************************** * PdhGetFormattedCounterValue (PDH.@) */ PDH_STATUS WINAPI PdhGetFormattedCounterValue( PDH_HCOUNTER handle, DWORD format, diff --git a/dlls/pdh/tests/pdh.c b/dlls/pdh/tests/pdh.c index cd03bcb..094ad74 100644 --- a/dlls/pdh/tests/pdh.c +++ b/dlls/pdh/tests/pdh.c @@ -934,6 +934,28 @@ static void test_PdhMakeCounterPathA(void) ok(ret == PDH_INVALID_ARGUMENT, "PdhMakeCounterPathA failed 0x%08x\n", ret); } +static void test_PdhGetDllVersion(void) +{ + PDH_STATUS ret; + DWORD version; + + ret = PdhGetDllVersion(NULL); + ok(ret == PDH_INVALID_ARGUMENT || + broken(ret == ERROR_SUCCESS), /* Vista+ */ + "Expected PdhGetDllVersion to return PDH_INVALID_ARGUMENT, got %d\n", ret); + + ret = PdhGetDllVersion(&version); + ok(ret == ERROR_SUCCESS, + "Expected PdhGetDllVersion to return ERROR_SUCCESS, got %d\n", ret); + + if (ret == ERROR_SUCCESS) + { + ok(version == PDH_CVERSION_WIN50 || + version == PDH_VERSION, + "Expected version number to be PDH_CVERSION_WIN50 or PDH_VERSION, got %u\n", version); + } +} + START_TEST(pdh) { if (PRIMARYLANGID(LANGIDFROMLCID(GetThreadLocale())) != LANG_ENGLISH) @@ -975,4 +997,5 @@ START_TEST(pdh) test_PdhCollectQueryDataEx(); test_PdhMakeCounterPathA(); + test_PdhGetDllVersion(); } diff --git a/include/pdh.h b/include/pdh.h index f4764af..7f3d334 100644 --- a/include/pdh.h +++ b/include/pdh.h @@ -37,6 +37,10 @@ typedef HANDLE PDH_HQUERY; typedef HANDLE PDH_HCOUNTER; typedef HANDLE PDH_HLOG; +#define PDH_CVERSION_WIN40 0x0400 +#define PDH_CVERSION_WIN50 0x0500 +#define PDH_VERSION 0x0503 + #define PDH_MAX_SCALE 7 #define PDH_MIN_SCALE (-7) @@ -186,6 +190,7 @@ PDH_STATUS WINAPI PdhGetCounterInfoA(PDH_HCOUNTER, BOOLEAN, LPDWORD, PPDH_COUNTE PDH_STATUS WINAPI PdhGetCounterInfoW(PDH_HCOUNTER, BOOLEAN, LPDWORD, PPDH_COUNTER_INFO_W); #define PdhGetCounterInfo WINELIB_NAME_AW(PdhGetCounterInfo) PDH_STATUS WINAPI PdhGetCounterTimeBase(PDH_HCOUNTER, LONGLONG *); +PDH_STATUS WINAPI PdhGetDllVersion(LPDWORD); PDH_STATUS WINAPI PdhGetFormattedCounterValue(PDH_HCOUNTER, DWORD, LPDWORD, PPDH_FMT_COUNTERVALUE); PDH_STATUS WINAPI PdhGetRawCounterValue(PDH_HCOUNTER, LPDWORD, PPDH_RAW_COUNTER); PDH_STATUS WINAPI PdhLookupPerfIndexByNameA(LPCSTR, LPCSTR, LPDWORD);
1
0
0
0
Alexandre Julliard : kernel32/tests: Fix heap flag tests for the page alloc case.
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: a86adcca616c7dd0eeeb14717cbe071d325f4dba URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a86adcca616c7dd0eeeb14717…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Mon Feb 1 12:35:43 2010 +0100 kernel32/tests: Fix heap flag tests for the page alloc case. --- dlls/kernel32/tests/heap.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dlls/kernel32/tests/heap.c b/dlls/kernel32/tests/heap.c index c6d7b65..68ed459 100644 --- a/dlls/kernel32/tests/heap.c +++ b/dlls/kernel32/tests/heap.c @@ -527,7 +527,6 @@ static void test_heap_checks( DWORD flags ) { ok( p[14] == 0, "wrong padding %x\n", p[14] ); ok( p[15] == 0, "wrong padding %x\n", p[15] ); - ok( p[16] == 0, "wrong padding %x\n", p[16] ); } } else skip( "realloc in place failed\n "); @@ -549,7 +548,7 @@ static void test_heap_checks( DWORD flags ) if (flags & HEAP_VALIDATE) { size = HeapSize( GetProcessHeap(), 0, p ); - ok( size == ~(SIZE_T)0, "Wrong size %lu\n", size ); + ok( size == ~(SIZE_T)0 || broken(size == ~0u), "Wrong size %lu\n", size ); p2 = HeapReAlloc( GetProcessHeap(), 0, p, 14 ); ok( p2 == NULL, "HeapReAlloc succeeded\n" ); @@ -752,13 +751,13 @@ static void test_child_heap( const char *arg ) expect_heap = heap_flags_from_global_flag( expected ); - if (!(heap->flags & HEAP_GROWABLE) || heap->pattern == 0xffeeffee || heap->pattern == 0xeeeeeeee) /* vista layout */ + if (!(heap->flags & HEAP_GROWABLE) || heap->pattern == 0xffeeffee) /* vista layout */ { - if (expected & FLG_HEAP_PAGE_ALLOCS) - ok( heap->flags == 0xeeeeeeee, "%s: got heap flags %08x expected 0xeeeeeeee\n", - arg, heap->flags ); - else - ok( heap->flags == 0, "%s: got heap flags %08x expected 0\n", arg, heap->flags ); + ok( heap->flags == 0, "%s: got heap flags %08x expected 0\n", arg, heap->flags ); + } + else if (heap->pattern == 0xeeeeeeee && heap->flags == 0xeeeeeeee) + { + ok( expected & FLG_HEAP_PAGE_ALLOCS, "%s: got heap flags 0xeeeeeeee without page alloc\n", arg ); } else { @@ -811,6 +810,7 @@ START_TEST(heap) test_debug_heap( argv[0], FLG_HEAP_DISABLE_COALESCING ); test_debug_heap( argv[0], FLG_HEAP_PAGE_ALLOCS ); test_debug_heap( argv[0], 0xdeadbeef ); + Sleep(5000); } else win_skip( "RtlGetNtGlobalFlags not found, skipping heap debug tests\n" ); }
1
0
0
0
Alexandre Julliard : ntdll: Avoid reporting a freed block twice to Valgrind .
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: 156d66ec24f93657e3001d5ba4ea2e4cf5ffd248 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=156d66ec24f93657e3001d5ba…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Mon Feb 1 12:35:32 2010 +0100 ntdll: Avoid reporting a freed block twice to Valgrind. --- dlls/ntdll/heap.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c index 5e57fd0..4c73184 100644 --- a/dlls/ntdll/heap.c +++ b/dlls/ntdll/heap.c @@ -281,9 +281,8 @@ static void subheap_notify_free_all(SUBHEAP const *subheap) else { ARENA_INUSE const *pArena = (ARENA_INUSE const *)ptr; - if (pArena->magic != ARENA_INUSE_MAGIC && pArena->magic != ARENA_PENDING_MAGIC) - ERR("bad inuse_magic @%p\n", pArena); - notify_free(pArena + 1); + if (pArena->magic == ARENA_INUSE_MAGIC) notify_free(pArena + 1); + else if (pArena->magic != ARENA_PENDING_MAGIC) ERR("bad inuse_magic @%p\n", pArena); ptr += sizeof(*pArena) + (pArena->size & ARENA_SIZE_MASK); } }
1
0
0
0
Detlef Riekenberg : shlwapi/tests: UrlUnescape* is not present on Win95B ( winetestbot).
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: c318f4f76bd14e649b56c6a7dc080e900fcfd612 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=c318f4f76bd14e649b56c6a7d…
Author: Detlef Riekenberg <wine.dev(a)web.de> Date: Sun Jan 31 01:57:23 2010 +0100 shlwapi/tests: UrlUnescape* is not present on Win95B (winetestbot). --- dlls/shlwapi/tests/url.c | 68 +++++++++++++++++++++++++++++++++------------- 1 files changed, 49 insertions(+), 19 deletions(-) diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index c5d11a1..4dd5d9c 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -31,6 +31,8 @@ /* ################ */ static HMODULE hShlwapi; +static HRESULT (WINAPI *pUrlUnescapeA)(LPSTR,LPSTR,LPDWORD,DWORD); +static HRESULT (WINAPI *pUrlUnescapeW)(LPWSTR,LPWSTR,LPDWORD,DWORD); static BOOL (WINAPI *pUrlIsA)(LPCSTR,URLIS); static BOOL (WINAPI *pUrlIsW)(LPCWSTR,URLIS); static HRESULT (WINAPI *pUrlHashA)(LPCSTR,LPBYTE,DWORD); @@ -1055,45 +1057,71 @@ static void test_UrlUnescape(void) static char another_inplace[] = "file:///C:/Program%20Files"; static const char expected[] = "file:///C:/Program Files"; static WCHAR inplaceW[] = {'f','i','l','e',':','/','/','/','C',':','/','P','r','o','g','r','a','m',' ','F','i','l','e','s',0}; - static WCHAR another_inplaceW[] = {'f','i','l','e',':','/','/','/','C',':','/','P','r','o','g','r','a','m','%','2','0','F','i','l','e','s',0}; + static WCHAR another_inplaceW[] ={'f','i','l','e',':','/','/','/', + 'C',':','/','P','r','o','g','r','a','m','%','2','0','F','i','l','e','s',0}; + HRESULT res; + if (!pUrlUnescapeA) { + win_skip("UrlUnescapeA not found\n"); + return; + } for(i=0; i<sizeof(TEST_URL_UNESCAPE)/sizeof(TEST_URL_UNESCAPE[0]); i++) { dwEscaped=INTERNET_MAX_URL_LENGTH; - ok(UrlUnescapeA(TEST_URL_UNESCAPE[i].url, szReturnUrl, &dwEscaped, 0) == S_OK, "UrlUnescapeA didn't return 0x%08x from \"%s\"\n", S_OK, TEST_URL_UNESCAPE[i].url); + res = pUrlUnescapeA(TEST_URL_UNESCAPE[i].url, szReturnUrl, &dwEscaped, 0); + ok(res == S_OK, + "UrlUnescapeA returned 0x%x (expected S_OK) for \"%s\"\n", + res, TEST_URL_UNESCAPE[i].url); ok(strcmp(szReturnUrl,TEST_URL_UNESCAPE[i].expect)==0, "Expected \"%s\", but got \"%s\" from \"%s\"\n", TEST_URL_UNESCAPE[i].expect, szReturnUrl, TEST_URL_UNESCAPE[i].url); ZeroMemory(szReturnUrl, sizeof(szReturnUrl)); /* if we set the bufferpointer to NULL here UrlUnescape fails and string gets not converted */ - ok(UrlUnescapeA(TEST_URL_UNESCAPE[i].url, szReturnUrl, NULL, 0) == E_INVALIDARG, "UrlUnescapeA didn't return 0x%08x from \"%s\"\n", E_INVALIDARG ,TEST_URL_UNESCAPE[i].url); + res = pUrlUnescapeA(TEST_URL_UNESCAPE[i].url, szReturnUrl, NULL, 0); + ok(res == E_INVALIDARG, + "UrlUnescapeA returned 0x%x (expected E_INVALIDARG) for \"%s\"\n", + res, TEST_URL_UNESCAPE[i].url); ok(strcmp(szReturnUrl,"")==0, "Expected empty string\n"); - dwEscaped = INTERNET_MAX_URL_LENGTH; - urlW = GetWideString(TEST_URL_UNESCAPE[i].url); - expected_urlW = GetWideString(TEST_URL_UNESCAPE[i].expect); - ok(UrlUnescapeW(urlW, ret_urlW, &dwEscaped, 0) == S_OK, "UrlUnescapeW didn't return 0x%08x from \"%s\"\n", S_OK, TEST_URL_UNESCAPE[i].url); - WideCharToMultiByte(CP_ACP,0,ret_urlW,-1,szReturnUrl,INTERNET_MAX_URL_LENGTH,0,0); - ok(lstrcmpW(ret_urlW, expected_urlW)==0, "Expected \"%s\", but got \"%s\" from \"%s\" flags %08lx\n", TEST_URL_UNESCAPE[i].expect, szReturnUrl, TEST_URL_UNESCAPE[i].url, 0L); - FreeWideString(urlW); - FreeWideString(expected_urlW); + if (pUrlUnescapeW) { + dwEscaped = INTERNET_MAX_URL_LENGTH; + urlW = GetWideString(TEST_URL_UNESCAPE[i].url); + expected_urlW = GetWideString(TEST_URL_UNESCAPE[i].expect); + res = pUrlUnescapeW(urlW, ret_urlW, &dwEscaped, 0); + ok(res == S_OK, + "UrlUnescapeW returned 0x%x (expected S_OK) for \"%s\"\n", + res, TEST_URL_UNESCAPE[i].url); + + WideCharToMultiByte(CP_ACP,0,ret_urlW,-1,szReturnUrl,INTERNET_MAX_URL_LENGTH,0,0); + ok(lstrcmpW(ret_urlW, expected_urlW)==0, + "Expected \"%s\", but got \"%s\" from \"%s\" flags %08lx\n", + TEST_URL_UNESCAPE[i].expect, szReturnUrl, TEST_URL_UNESCAPE[i].url, 0L); + FreeWideString(urlW); + FreeWideString(expected_urlW); + } } dwEscaped = sizeof(inplace); - ok(UrlUnescapeA(inplace, NULL, &dwEscaped, URL_UNESCAPE_INPLACE) == S_OK, "UrlUnescapeA failed unexpectedly\n"); + res = pUrlUnescapeA(inplace, NULL, &dwEscaped, URL_UNESCAPE_INPLACE); + ok(res == S_OK, "UrlUnescapeA returned 0x%x (expected S_OK)\n", res); ok(!strcmp(inplace, expected), "got %s expected %s\n", inplace, expected); ok(dwEscaped == 27, "got %d expected 27\n", dwEscaped); /* if we set the bufferpointer to NULL, the string apparently still gets converted (Google Lively does this)) */ - ok(UrlUnescapeA(another_inplace, NULL, NULL, URL_UNESCAPE_INPLACE) == S_OK, "UrlUnescapeA failed unexpectedly\n"); + res = pUrlUnescapeA(another_inplace, NULL, NULL, URL_UNESCAPE_INPLACE); + ok(res == S_OK, "UrlUnescapeA returned 0x%x (expected S_OK)\n", res); ok(!strcmp(another_inplace, expected), "got %s expected %s\n", another_inplace, expected); - dwEscaped = sizeof(inplaceW); - ok(UrlUnescapeW(inplaceW, NULL, &dwEscaped, URL_UNESCAPE_INPLACE) == S_OK, "UrlUnescapeW failed unexpectedly\n"); - ok(dwEscaped == 50, "got %d expected 50\n", dwEscaped); + if (pUrlUnescapeW) { + dwEscaped = sizeof(inplaceW); + res = pUrlUnescapeW(inplaceW, NULL, &dwEscaped, URL_UNESCAPE_INPLACE); + ok(res == S_OK, "UrlUnescapeW returned 0x%x (expected S_OK)\n", res); + ok(dwEscaped == 50, "got %d expected 50\n", dwEscaped); - /* if we set the bufferpointer to NULL, the string apparently still gets converted (Google Lively does this)) */ - ok(UrlUnescapeW(another_inplaceW, NULL, NULL, URL_UNESCAPE_INPLACE) == S_OK, "UrlUnescapeW failed unexpectedly\n"); - ok(lstrlenW(another_inplaceW) == 24, "got %d expected 24\n", lstrlenW(another_inplaceW)); + /* if we set the bufferpointer to NULL, the string apparently still gets converted (Google Lively does this)) */ + res = pUrlUnescapeW(another_inplaceW, NULL, NULL, URL_UNESCAPE_INPLACE); + ok(res == S_OK, "UrlUnescapeW returned 0x%x (expected S_OK)\n", res); + ok(lstrlenW(another_inplaceW) == 24, "got %d expected 24\n", lstrlenW(another_inplaceW)); + } } static const struct parse_url_test_t { @@ -1266,6 +1294,8 @@ START_TEST(url) { hShlwapi = GetModuleHandleA("shlwapi.dll"); + pUrlUnescapeA = (void *) GetProcAddress(hShlwapi, "UrlUnescapeA"); + pUrlUnescapeW = (void *) GetProcAddress(hShlwapi, "UrlUnescapeW"); pUrlIsA = (void *) GetProcAddress(hShlwapi, "UrlIsA"); pUrlIsW = (void *) GetProcAddress(hShlwapi, "UrlIsW"); pUrlHashA = (void *) GetProcAddress(hShlwapi, "UrlHashA");
1
0
0
0
Detlef Riekenberg : shlwapi/tests: UrlIs* is not present on Win95B ( winetestbot).
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: ce7eb256bc77aea469c56e2c04b92e91aa3162de URL:
http://source.winehq.org/git/wine.git/?a=commit;h=ce7eb256bc77aea469c56e2c0…
Author: Detlef Riekenberg <wine.dev(a)web.de> Date: Sun Jan 31 01:22:46 2010 +0100 shlwapi/tests: UrlIs* is not present on Win95B (winetestbot). --- dlls/shlwapi/tests/url.c | 43 ++++++++++++++++++++++++++++--------------- 1 files changed, 28 insertions(+), 15 deletions(-) diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index 8230756..c5d11a1 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -31,6 +31,8 @@ /* ################ */ static HMODULE hShlwapi; +static BOOL (WINAPI *pUrlIsA)(LPCSTR,URLIS); +static BOOL (WINAPI *pUrlIsW)(LPCWSTR,URLIS); static HRESULT (WINAPI *pUrlHashA)(LPCSTR,LPBYTE,DWORD); static HRESULT (WINAPI *pUrlHashW)(LPCWSTR,LPBYTE,DWORD); static HRESULT (WINAPI *pUrlGetPartA)(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD); @@ -995,39 +997,48 @@ static void test_UrlIs(void) size_t i; WCHAR wurl[80]; + if (!pUrlIsA) { + win_skip("UrlIsA not found\n"); + return; + } + for(i = 0; i < sizeof(TEST_PATH_IS_URL) / sizeof(TEST_PATH_IS_URL[0]); i++) { MultiByteToWideChar(CP_ACP, 0, TEST_PATH_IS_URL[i].path, -1, wurl, 80); - ret = UrlIsA( TEST_PATH_IS_URL[i].path, URLIS_URL ); + ret = pUrlIsA( TEST_PATH_IS_URL[i].path, URLIS_URL ); ok( ret == TEST_PATH_IS_URL[i].expect, "returned %d from path %s, expected %d\n", ret, TEST_PATH_IS_URL[i].path, TEST_PATH_IS_URL[i].expect ); - ret = UrlIsW( wurl, URLIS_URL ); - ok( ret == TEST_PATH_IS_URL[i].expect, - "returned %d from path (UrlIsW) %s, expected %d\n", ret, TEST_PATH_IS_URL[i].path, - TEST_PATH_IS_URL[i].expect ); + if (pUrlIsW) { + ret = pUrlIsW( wurl, URLIS_URL ); + ok( ret == TEST_PATH_IS_URL[i].expect, + "returned %d from path (UrlIsW) %s, expected %d\n", ret, + TEST_PATH_IS_URL[i].path, TEST_PATH_IS_URL[i].expect ); + } } for(i = 0; i < sizeof(TEST_URLIS_ATTRIBS) / sizeof(TEST_URLIS_ATTRIBS[0]); i++) { MultiByteToWideChar(CP_ACP, 0, TEST_URLIS_ATTRIBS[i].url, -1, wurl, 80); - ret = UrlIsA( TEST_URLIS_ATTRIBS[i].url, URLIS_OPAQUE); + ret = pUrlIsA( TEST_URLIS_ATTRIBS[i].url, URLIS_OPAQUE); ok( ret == TEST_URLIS_ATTRIBS[i].expectOpaque, "returned %d for URLIS_OPAQUE, url \"%s\", expected %d\n", ret, TEST_URLIS_ATTRIBS[i].url, TEST_URLIS_ATTRIBS[i].expectOpaque ); - ret = UrlIsA( TEST_URLIS_ATTRIBS[i].url, URLIS_FILEURL); + ret = pUrlIsA( TEST_URLIS_ATTRIBS[i].url, URLIS_FILEURL); ok( ret == TEST_URLIS_ATTRIBS[i].expectFile, "returned %d for URLIS_FILEURL, url \"%s\", expected %d\n", ret, TEST_URLIS_ATTRIBS[i].url, TEST_URLIS_ATTRIBS[i].expectFile ); - ret = UrlIsW( wurl, URLIS_OPAQUE); - ok( ret == TEST_URLIS_ATTRIBS[i].expectOpaque, - "returned %d for URLIS_OPAQUE (UrlIsW), url \"%s\", expected %d\n", ret, TEST_URLIS_ATTRIBS[i].url, - TEST_URLIS_ATTRIBS[i].expectOpaque ); - ret = UrlIsW( wurl, URLIS_FILEURL); - ok( ret == TEST_URLIS_ATTRIBS[i].expectFile, - "returned %d for URLIS_FILEURL (UrlIsW), url \"%s\", expected %d\n", ret, TEST_URLIS_ATTRIBS[i].url, - TEST_URLIS_ATTRIBS[i].expectFile ); + if (pUrlIsW) { + ret = pUrlIsW( wurl, URLIS_OPAQUE); + ok( ret == TEST_URLIS_ATTRIBS[i].expectOpaque, + "returned %d for URLIS_OPAQUE (UrlIsW), url \"%s\", expected %d\n", + ret, TEST_URLIS_ATTRIBS[i].url, TEST_URLIS_ATTRIBS[i].expectOpaque ); + ret = pUrlIsW( wurl, URLIS_FILEURL); + ok( ret == TEST_URLIS_ATTRIBS[i].expectFile, + "returned %d for URLIS_FILEURL (UrlIsW), url \"%s\", expected %d\n", + ret, TEST_URLIS_ATTRIBS[i].url, TEST_URLIS_ATTRIBS[i].expectFile ); + } } } @@ -1255,6 +1266,8 @@ START_TEST(url) { hShlwapi = GetModuleHandleA("shlwapi.dll"); + pUrlIsA = (void *) GetProcAddress(hShlwapi, "UrlIsA"); + pUrlIsW = (void *) GetProcAddress(hShlwapi, "UrlIsW"); pUrlHashA = (void *) GetProcAddress(hShlwapi, "UrlHashA"); pUrlHashW = (void *) GetProcAddress(hShlwapi, "UrlHashW"); pUrlGetPartA = (void *) GetProcAddress(hShlwapi, "UrlGetPartA");
1
0
0
0
Detlef Riekenberg : shlwapi/tests: UrlHash* is not present on Win95B ( winetestbot).
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: 4f4a47a1c97a069448509b4ef549d5ace9fbc8d9 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=4f4a47a1c97a069448509b4ef…
Author: Detlef Riekenberg <wine.dev(a)web.de> Date: Sun Jan 31 01:11:32 2010 +0100 shlwapi/tests: UrlHash* is not present on Win95B (winetestbot). --- dlls/shlwapi/tests/url.c | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index 69280e7..8230756 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -31,6 +31,8 @@ /* ################ */ static HMODULE hShlwapi; +static HRESULT (WINAPI *pUrlHashA)(LPCSTR,LPBYTE,DWORD); +static HRESULT (WINAPI *pUrlHashW)(LPCWSTR,LPBYTE,DWORD); static HRESULT (WINAPI *pUrlGetPartA)(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD); static HRESULT (WINAPI *pUrlGetPartW)(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD); static HRESULT (WINAPI *pUrlEscapeA)(LPCSTR,LPSTR,LPDWORD,DWORD); @@ -492,19 +494,29 @@ static void hash_url(const char* szUrl) { LPCSTR szTestUrl = szUrl; LPWSTR wszTestUrl = GetWideString(szTestUrl); + HRESULT res; DWORD cbSize = sizeof(DWORD); DWORD dwHash1, dwHash2; - ok(UrlHashA(szTestUrl, (LPBYTE)&dwHash1, cbSize) == S_OK, "UrlHashA didn't return S_OK\n"); - ok(UrlHashW(wszTestUrl, (LPBYTE)&dwHash2, cbSize) == S_OK, "UrlHashW didn't return S_OK\n"); - + res = pUrlHashA(szTestUrl, (LPBYTE)&dwHash1, cbSize); + ok(res == S_OK, "UrlHashA returned 0x%x (expected S_OK) for %s\n", res, szUrl); + if (pUrlHashW) { + res = pUrlHashW(wszTestUrl, (LPBYTE)&dwHash2, cbSize); + ok(res == S_OK, "UrlHashW returned 0x%x (expected S_OK) for %s\n", res, szUrl); + ok(dwHash1 == dwHash2, + "Hashes didn't match (A: 0x%x, W: 0x%x) for %s\n", dwHash1, dwHash2, szUrl); + } FreeWideString(wszTestUrl); - ok(dwHash1 == dwHash2, "Hashes didn't compare\n"); } static void test_UrlHash(void) { + if (!pUrlHashA) { + win_skip("UrlHashA not found\n"); + return; + } + hash_url(TEST_URL_1); hash_url(TEST_URL_2); hash_url(TEST_URL_3); @@ -1243,6 +1255,8 @@ START_TEST(url) { hShlwapi = GetModuleHandleA("shlwapi.dll"); + pUrlHashA = (void *) GetProcAddress(hShlwapi, "UrlHashA"); + pUrlHashW = (void *) GetProcAddress(hShlwapi, "UrlHashW"); pUrlGetPartA = (void *) GetProcAddress(hShlwapi, "UrlGetPartA"); pUrlGetPartW = (void *) GetProcAddress(hShlwapi, "UrlGetPartW"); pUrlEscapeA = (void *) GetProcAddress(hShlwapi, "UrlEscapeA");
1
0
0
0
Detlef Riekenberg : shlwapi/tests: UrlGetPart* is not present on Win95B ( winetestbot).
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: fb81d89a81405da6616d2c2012b57c99e734a5e4 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=fb81d89a81405da6616d2c201…
Author: Detlef Riekenberg <wine.dev(a)web.de> Date: Sun Jan 31 00:51:44 2010 +0100 shlwapi/tests: UrlGetPart* is not present on Win95B (winetestbot). --- dlls/shlwapi/tests/url.c | 40 +++++++++++++++++++++++++++++----------- 1 files changed, 29 insertions(+), 11 deletions(-) diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index e549298..69280e7 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -31,6 +31,8 @@ /* ################ */ static HMODULE hShlwapi; +static HRESULT (WINAPI *pUrlGetPartA)(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD); +static HRESULT (WINAPI *pUrlGetPartW)(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD); static HRESULT (WINAPI *pUrlEscapeA)(LPCSTR,LPSTR,LPDWORD,DWORD); static HRESULT (WINAPI *pUrlEscapeW)(LPCWSTR,LPWSTR,LPDWORD,DWORD); static HRESULT (WINAPI *pUrlCreateFromPathA)(LPCSTR,LPSTR,LPDWORD,DWORD); @@ -516,20 +518,29 @@ static void test_url_part(const char* szUrl, DWORD dwPart, DWORD dwFlags, const WCHAR wszPart[INTERNET_MAX_URL_LENGTH]; LPWSTR wszUrl = GetWideString(szUrl); LPWSTR wszConvertedPart; - + HRESULT res; DWORD dwSize; dwSize = INTERNET_MAX_URL_LENGTH; - ok( UrlGetPartA(szUrl, szPart, &dwSize, dwPart, dwFlags) == S_OK, "UrlGetPartA for \"%s\" part 0x%08x didn't return S_OK but \"%s\"\n", szUrl, dwPart, szPart); - dwSize = INTERNET_MAX_URL_LENGTH; - ok( UrlGetPartW(wszUrl, wszPart, &dwSize, dwPart, dwFlags) == S_OK, "UrlGetPartW didn't return S_OK\n" ); + res = pUrlGetPartA(szUrl, szPart, &dwSize, dwPart, dwFlags); + ok(res == S_OK, + "UrlGetPartA for \"%s\" part 0x%08x returned 0x%x and \"%s\"\n", + szUrl, dwPart, res, szPart); + if (pUrlGetPartW) { + dwSize = INTERNET_MAX_URL_LENGTH; + res = pUrlGetPartW(wszUrl, wszPart, &dwSize, dwPart, dwFlags); + ok(res == S_OK, + "UrlGetPartW for \"%s\" part 0x%08x returned 0x%x\n", + szUrl, dwPart, res); - wszConvertedPart = GetWideString(szPart); + wszConvertedPart = GetWideString(szPart); - ok(lstrcmpW(wszPart,wszConvertedPart)==0, "Strings didn't match between ascii and unicode UrlGetPart!\n"); + ok(lstrcmpW(wszPart,wszConvertedPart)==0, + "Strings didn't match between ascii and unicode UrlGetPart!\n"); + FreeWideString(wszConvertedPart); + } FreeWideString(wszUrl); - FreeWideString(wszConvertedPart); /* Note that v6.0 and later don't return '?' with the query */ ok(strcmp(szPart,szExpected)==0 || @@ -548,16 +559,21 @@ static void test_UrlGetPart(void) DWORD dwSize; HRESULT res; + if (!pUrlGetPartA) { + win_skip("UrlGetPartA not found\n"); + return; + } + dwSize = sizeof szPart; szPart[0]='x'; szPart[1]=0; - res = UrlGetPartA("hi", szPart, &dwSize, URL_PART_SCHEME, 0); + res = pUrlGetPartA("hi", szPart, &dwSize, URL_PART_SCHEME, 0); todo_wine { ok (res==S_FALSE, "UrlGetPartA(\"hi\") returned %08X\n", res); ok(szPart[0]==0, "UrlGetPartA(\"hi\") return \"%s\" instead of \"\"\n", szPart); } dwSize = sizeof szPart; szPart[0]='x'; szPart[1]=0; - res = UrlGetPartA("hi", szPart, &dwSize, URL_PART_QUERY, 0); + res = pUrlGetPartA("hi", szPart, &dwSize, URL_PART_QUERY, 0); todo_wine { ok (res==S_FALSE, "UrlGetPartA(\"hi\") returned %08X\n", res); ok(szPart[0]==0, "UrlGetPartA(\"hi\") return \"%s\" instead of \"\"\n", szPart); @@ -576,12 +592,12 @@ static void test_UrlGetPart(void) test_url_part(http_url, URL_PART_PASSWORD, 0, "pass 123"); dwSize = sizeof(szPart); - res = UrlGetPartA("file://c:\\index.htm", szPart, &dwSize, URL_PART_HOSTNAME, 0); + res = pUrlGetPartA("file://c:\\index.htm", szPart, &dwSize, URL_PART_HOSTNAME, 0); ok(res==S_FALSE, "returned %08x\n", res); dwSize = sizeof(szPart); szPart[0] = 'x'; szPart[1] = '\0'; - res = UrlGetPartA("file:some text", szPart, &dwSize, URL_PART_HOSTNAME, 0); + res = pUrlGetPartA("file:some text", szPart, &dwSize, URL_PART_HOSTNAME, 0); ok(res==S_FALSE, "returned %08x\n", res); ok(szPart[0] == '\0', "szPart[0] = %c\n", szPart[0]); ok(dwSize == 0, "dwSize = %d\n", dwSize); @@ -1227,6 +1243,8 @@ START_TEST(url) { hShlwapi = GetModuleHandleA("shlwapi.dll"); + pUrlGetPartA = (void *) GetProcAddress(hShlwapi, "UrlGetPartA"); + pUrlGetPartW = (void *) GetProcAddress(hShlwapi, "UrlGetPartW"); pUrlEscapeA = (void *) GetProcAddress(hShlwapi, "UrlEscapeA"); pUrlEscapeW = (void *) GetProcAddress(hShlwapi, "UrlEscapeW"); pUrlCreateFromPathA = (void *) GetProcAddress(hShlwapi, "UrlCreateFromPathA");
1
0
0
0
Detlef Riekenberg : shlwapi/tests: UrlEscape* is not present on Win95B ( winetestbot).
by Alexandre Julliard
01 Feb '10
01 Feb '10
Module: wine Branch: master Commit: 5d1820e70ecb89bf272c6ea962f578f1f3fb8aa2 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=5d1820e70ecb89bf272c6ea96…
Author: Detlef Riekenberg <wine.dev(a)web.de> Date: Sun Jan 31 00:31:33 2010 +0100 shlwapi/tests: UrlEscape* is not present on Win95B (winetestbot). --- dlls/shlwapi/tests/url.c | 44 +++++++++++++++++++++++++++++--------------- 1 files changed, 29 insertions(+), 15 deletions(-) diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index a82faf0..e549298 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -31,6 +31,8 @@ /* ################ */ static HMODULE hShlwapi; +static HRESULT (WINAPI *pUrlEscapeA)(LPCSTR,LPSTR,LPDWORD,DWORD); +static HRESULT (WINAPI *pUrlEscapeW)(LPCWSTR,LPWSTR,LPDWORD,DWORD); static HRESULT (WINAPI *pUrlCreateFromPathA)(LPCSTR,LPSTR,LPDWORD,DWORD); static HRESULT (WINAPI *pUrlCreateFromPathW)(LPCWSTR,LPWSTR,LPDWORD,DWORD); static HRESULT (WINAPI *pUrlCombineA)(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD); @@ -595,18 +597,23 @@ static void test_url_escape(const char *szUrl, DWORD dwFlags, HRESULT dwExpectRe WCHAR *urlW, *expected_urlW; dwEscaped=INTERNET_MAX_URL_LENGTH; - ok(UrlEscapeA(szUrl, szReturnUrl, &dwEscaped, dwFlags) == dwExpectReturn, "UrlEscapeA didn't return 0x%08x from \"%s\"\n", dwExpectReturn, szUrl); + ok(pUrlEscapeA(szUrl, szReturnUrl, &dwEscaped, dwFlags) == dwExpectReturn, + "UrlEscapeA didn't return 0x%08x from \"%s\"\n", dwExpectReturn, szUrl); ok(strcmp(szReturnUrl,szExpectUrl)==0, "Expected \"%s\", but got \"%s\" from \"%s\"\n", szExpectUrl, szReturnUrl, szUrl); - dwEscaped = INTERNET_MAX_URL_LENGTH; - urlW = GetWideString(szUrl); - expected_urlW = GetWideString(szExpectUrl); - ok(UrlEscapeW(urlW, ret_urlW, &dwEscaped, dwFlags) == dwExpectReturn, "UrlEscapeW didn't return 0x%08x from \"%s\"\n", dwExpectReturn, szUrl); - WideCharToMultiByte(CP_ACP,0,ret_urlW,-1,szReturnUrl,INTERNET_MAX_URL_LENGTH,0,0); - ok(lstrcmpW(ret_urlW, expected_urlW)==0, "Expected \"%s\", but got \"%s\" from \"%s\" flags %08x\n", szExpectUrl, szReturnUrl, szUrl, dwFlags); - FreeWideString(urlW); - FreeWideString(expected_urlW); - + if (pUrlEscapeW) { + dwEscaped = INTERNET_MAX_URL_LENGTH; + urlW = GetWideString(szUrl); + expected_urlW = GetWideString(szExpectUrl); + ok(pUrlEscapeW(urlW, ret_urlW, &dwEscaped, dwFlags) == dwExpectReturn, + "UrlEscapeW didn't return 0x%08x from \"%s\"\n", dwExpectReturn, szUrl); + WideCharToMultiByte(CP_ACP,0,ret_urlW,-1,szReturnUrl,INTERNET_MAX_URL_LENGTH,0,0); + ok(lstrcmpW(ret_urlW, expected_urlW)==0, + "Expected \"%s\", but got \"%s\" from \"%s\" flags %08x\n", + szExpectUrl, szReturnUrl, szUrl, dwFlags); + FreeWideString(urlW); + FreeWideString(expected_urlW); + } } static void test_url_canonicalize(int index, const char *szUrl, DWORD dwFlags, HRESULT dwExpectReturn, HRESULT dwExpectReturnAlt, const char *szExpectUrl, BOOL todo) @@ -659,27 +666,32 @@ static void test_UrlEscape(void) unsigned int i; char empty_string[] = ""; - ret = UrlEscapeA("/woningplan/woonkamer basis.swf", NULL, &size, URL_ESCAPE_SPACES_ONLY); + if (!pUrlEscapeA) { + win_skip("UrlEscapeA noz found\n"); + return; + } + + ret = pUrlEscapeA("/woningplan/woonkamer basis.swf", NULL, &size, URL_ESCAPE_SPACES_ONLY); ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG); ok(size == 0, "got %d, expected %d\n", size, 0); size = 0; - ret = UrlEscapeA("/woningplan/woonkamer basis.swf", empty_string, &size, URL_ESCAPE_SPACES_ONLY); + ret = pUrlEscapeA("/woningplan/woonkamer basis.swf", empty_string, &size, URL_ESCAPE_SPACES_ONLY); ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG); ok(size == 0, "got %d, expected %d\n", size, 0); size = 1; - ret = UrlEscapeA("/woningplan/woonkamer basis.swf", NULL, &size, URL_ESCAPE_SPACES_ONLY); + ret = pUrlEscapeA("/woningplan/woonkamer basis.swf", NULL, &size, URL_ESCAPE_SPACES_ONLY); ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG); ok(size == 1, "got %d, expected %d\n", size, 1); size = 1; - ret = UrlEscapeA("/woningplan/woonkamer basis.swf", empty_string, NULL, URL_ESCAPE_SPACES_ONLY); + ret = pUrlEscapeA("/woningplan/woonkamer basis.swf", empty_string, NULL, URL_ESCAPE_SPACES_ONLY); ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG); ok(size == 1, "got %d, expected %d\n", size, 1); size = 1; - ret = UrlEscapeA("/woningplan/woonkamer basis.swf", empty_string, &size, URL_ESCAPE_SPACES_ONLY); + ret = pUrlEscapeA("/woningplan/woonkamer basis.swf", empty_string, &size, URL_ESCAPE_SPACES_ONLY); ok(ret == E_POINTER, "got %x, expected %x\n", ret, E_POINTER); ok(size == 34, "got %d, expected %d\n", size, 34); @@ -1215,6 +1227,8 @@ START_TEST(url) { hShlwapi = GetModuleHandleA("shlwapi.dll"); + pUrlEscapeA = (void *) GetProcAddress(hShlwapi, "UrlEscapeA"); + pUrlEscapeW = (void *) GetProcAddress(hShlwapi, "UrlEscapeW"); pUrlCreateFromPathA = (void *) GetProcAddress(hShlwapi, "UrlCreateFromPathA"); pUrlCreateFromPathW = (void *) GetProcAddress(hShlwapi, "UrlCreateFromPathW"); pUrlCombineA = (void *) GetProcAddress(hShlwapi, "UrlCombineA");
1
0
0
0
← Newer
1
...
72
73
74
75
76
77
78
79
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Results per page:
10
25
50
100
200