Author: akhaldi Date: Wed Jul 22 00:47:52 2015 New Revision: 68546
URL: http://svn.reactos.org/svn/reactos?rev=68546&view=rev Log: [WSHOM_WINETEST] Sync with Wine Staging 1.7.47. CORE-9924
Modified: trunk/rostests/winetests/wshom/wshom.c trunk/rostests/winetests/wshom/wshom.idl
Modified: trunk/rostests/winetests/wshom/wshom.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/wshom/wshom.c?re... ============================================================================== --- trunk/rostests/winetests/wshom/wshom.c [iso-8859-1] (original) +++ trunk/rostests/winetests/wshom/wshom.c [iso-8859-1] Wed Jul 22 00:47:52 2015 @@ -42,7 +42,10 @@ static const WCHAR pathW[] = {'%','P','A','T','H','%',0}; static const WCHAR sysW[] = {'S','Y','S','T','E','M',0}; static const WCHAR path2W[] = {'P','A','T','H',0}; + static const WCHAR dummydirW[] = {'d','e','a','d','p','a','r','r','o','t',0}; + static const WCHAR emptyW[] = {'e','m','p','t','y',0}; IWshEnvironment *env; + IWshExec *shexec; IWshShell3 *sh3; IDispatchEx *dispex; IWshCollection *coll; @@ -212,6 +215,42 @@
SysFreeString(str);
+ /* current directory */ +if (0) /* crashes on native */ + hr = IWshShell3_get_CurrentDirectory(sh3, NULL); + + str = NULL; + hr = IWshShell3_get_CurrentDirectory(sh3, &str); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(str && str[0] != 0, "got empty string\n"); + SysFreeString(str); + + hr = IWshShell3_put_CurrentDirectory(sh3, NULL); + ok(hr == E_INVALIDARG || + broken(hr == HRESULT_FROM_WIN32(ERROR_NOACCESS)), "got 0x%08x\n", hr); + + str = SysAllocString(emptyW); + hr = IWshShell3_put_CurrentDirectory(sh3, str); + ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got 0x%08x\n", hr); + SysFreeString(str); + + str = SysAllocString(dummydirW); + hr = IWshShell3_put_CurrentDirectory(sh3, str); + ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got 0x%08x\n", hr); + SysFreeString(str); + + /* Exec */ + hr = IWshShell3_Exec(sh3, NULL, NULL); + ok(hr == E_POINTER, "got 0x%08x\n", hr); + + hr = IWshShell3_Exec(sh3, NULL, &shexec); + ok(hr == DISP_E_EXCEPTION, "got 0x%08x\n", hr); + + str = SysAllocString(emptyW); + hr = IWshShell3_Exec(sh3, str, &shexec); + ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "got 0x%08x\n", hr); + SysFreeString(str); + IWshCollection_Release(coll); IDispatch_Release(disp); IWshShell3_Release(sh3); @@ -241,7 +280,7 @@ { static const WCHAR keypathW[] = {'H','K','E','Y','_','C','U','R','R','E','N','T','_','U','S','E','R','\', 'S','o','f','t','w','a','r','e','\','W','i','n','e','\','T','e','s','t','\',0}; - + static const WCHAR regsz2W[] = {'r','e','g','s','z','2',0}; static const WCHAR regszW[] = {'r','e','g','s','z',0}; static const WCHAR regdwordW[] = {'r','e','g','d','w','o','r','d',0}; static const WCHAR regbinaryW[] = {'r','e','g','b','i','n','a','r','y',0}; @@ -297,6 +336,9 @@ ret = RegSetValueExA(root, "regsz", 0, REG_SZ, (const BYTE*)"foobar", 7); ok(ret == 0, "got %d\n", ret);
+ ret = RegSetValueExA(root, "regsz2", 0, REG_SZ, (const BYTE*)"foobar\0f", 9); + ok(ret == 0, "got %d\n", ret); + ret = RegSetValueExA(root, "regmultisz", 0, REG_MULTI_SZ, (const BYTE*)"foo\0bar\0", 9); ok(ret == 0, "got %d\n", ret);
@@ -320,6 +362,18 @@ VariantClear(&value); SysFreeString(name);
+ /* REG_SZ with embedded NULL */ + lstrcpyW(pathW, keypathW); + lstrcatW(pathW, regsz2W); + name = SysAllocString(pathW); + VariantInit(&value); + hr = IWshShell3_RegRead(sh3, name, &value); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(V_VT(&value) == VT_BSTR, "got %d\n", V_VT(&value)); + ok(SysStringLen(V_BSTR(&value)) == 6, "len %d\n", SysStringLen(V_BSTR(&value))); + VariantClear(&value); + SysFreeString(name); + /* REG_DWORD */ lstrcpyW(pathW, keypathW); lstrcatW(pathW, regdwordW); @@ -371,6 +425,7 @@ hr = IWshShell3_RegRead(sh3, name, &value); ok(hr == S_OK, "got 0x%08x\n", hr); ok(V_VT(&value) == (VT_ARRAY|VT_VARIANT), "got 0x%x\n", V_VT(&value)); + SysFreeString(name);
dim = SafeArrayGetDim(V_ARRAY(&value)); ok(dim == 1, "got %u\n", dim); @@ -439,7 +494,7 @@ ok(hr == S_OK, "got 0x%08x\n", hr);
type = REG_NONE; - ret = RegGetValueA(root, NULL, "regsz", RRF_RT_ANY, &type, NULL, NULL); + ret = RegQueryValueExA(root, "regsz", 0, &type, NULL, NULL); ok(ret == ERROR_SUCCESS, "got %d\n", ret); ok(type == REG_SZ, "got %d\n", type);
@@ -452,7 +507,7 @@ VariantClear(&value);
type = REG_NONE; - ret = RegGetValueA(root, NULL, "regsz", RRF_RT_ANY, &type, NULL, NULL); + ret = RegQueryValueExA(root, "regsz", 0, &type, NULL, NULL); ok(ret == ERROR_SUCCESS, "got %d\n", ret); ok(type == REG_SZ, "got %d\n", type);
@@ -465,7 +520,7 @@ VariantClear(&value);
type = REG_NONE; - ret = RegGetValueA(root, NULL, "regsz", RRF_RT_ANY, &type, NULL, NULL); + ret = RegQueryValueExA(root, "regsz", 0, &type, NULL, NULL); ok(ret == ERROR_SUCCESS, "got %d\n", ret); ok(type == REG_SZ, "got %d\n", type);
Modified: trunk/rostests/winetests/wshom/wshom.idl URL: http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/wshom/wshom.idl?... ============================================================================== --- trunk/rostests/winetests/wshom/wshom.idl [iso-8859-1] (original) +++ trunk/rostests/winetests/wshom/wshom.idl [iso-8859-1] Wed Jul 22 00:47:52 2015 @@ -434,10 +434,10 @@ HRESULT StdErr([out, retval] ITextStream** stream);
[id(0x0006), propget] - HRESULT ProcessID([out, retval] long* pid); + HRESULT ProcessID([out, retval] DWORD *pid);
[id(0x0007), propget] - HRESULT ExitCode([out, retval] long* ExitCode); + HRESULT ExitCode([out, retval] DWORD *code);
[id(0x0008)] HRESULT Terminate();