Commit 2f4ad88c authored by Michał Ziętek's avatar Michał Ziętek Committed by Alexandre Julliard

wscript: Fix tests on wow64.

parent 71a237d4
TESTDLL = wscript.exe TESTDLL = wscript.exe
IMPORTS = ole32 oleaut32 advapi32 IMPORTS = ole32 oleaut32 psapi advapi32
C_SRCS = \ C_SRCS = \
run.c run.c
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <initguid.h> #include <initguid.h>
#include <windows.h> #include <windows.h>
#include <psapi.h>
#include <oaidl.h> #include <oaidl.h>
#include "wine/test.h" #include "wine/test.h"
...@@ -70,6 +71,7 @@ static const GUID CLSID_TestObj = ...@@ -70,6 +71,7 @@ static const GUID CLSID_TestObj =
{0x178fc166,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xfa,0xf8,0x06,0x46}}; {0x178fc166,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xfa,0xf8,0x06,0x46}};
static const char *script_name; static const char *script_name;
static HANDLE wscript_process;
static int strcmp_wa(LPCWSTR strw, const char *stra) static int strcmp_wa(LPCWSTR strw, const char *stra)
{ {
...@@ -199,14 +201,13 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF ...@@ -199,14 +201,13 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF
case DISPID_TESTOBJ_WSCRIPTFULLNAME: case DISPID_TESTOBJ_WSCRIPTFULLNAME:
{ {
WCHAR fullName[MAX_PATH]; WCHAR fullName[MAX_PATH];
const WCHAR wscriptexe[] = {'w','s','c','r','i','p','t','.','e','x','e',0};
DWORD res; DWORD res;
ok(wFlags == INVOKE_PROPERTYGET, "wFlags = %x\n", wFlags); ok(wFlags == INVOKE_PROPERTYGET, "wFlags = %x\n", wFlags);
ok(pdp->cArgs == 0, "cArgs = %d\n", pdp->cArgs); ok(pdp->cArgs == 0, "cArgs = %d\n", pdp->cArgs);
ok(!pdp->cNamedArgs, "cNamedArgs = %d\n", pdp->cNamedArgs); ok(!pdp->cNamedArgs, "cNamedArgs = %d\n", pdp->cNamedArgs);
V_VT(pVarResult) = VT_BSTR; V_VT(pVarResult) = VT_BSTR;
res = SearchPathW(NULL, wscriptexe, NULL, sizeof(fullName)/sizeof(WCHAR), fullName, NULL); res = GetModuleFileNameExW(wscript_process, NULL, fullName, sizeof(fullName)/sizeof(WCHAR));
if(res == 0) if(res == 0)
return E_FAIL; return E_FAIL;
if(!(V_BSTR(pVarResult) = SysAllocString(fullName))) if(!(V_BSTR(pVarResult) = SysAllocString(fullName)))
...@@ -216,7 +217,6 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF ...@@ -216,7 +217,6 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF
case DISPID_TESTOBJ_WSCRIPTPATH: case DISPID_TESTOBJ_WSCRIPTPATH:
{ {
WCHAR fullPath[MAX_PATH]; WCHAR fullPath[MAX_PATH];
const WCHAR wscriptexe[] = {'w','s','c','r','i','p','t','.','e','x','e',0};
DWORD res; DWORD res;
const WCHAR *pos; const WCHAR *pos;
...@@ -224,7 +224,7 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF ...@@ -224,7 +224,7 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF
ok(pdp->cArgs == 0, "cArgs = %d\n", pdp->cArgs); ok(pdp->cArgs == 0, "cArgs = %d\n", pdp->cArgs);
ok(!pdp->cNamedArgs, "cNamedArgs = %d\n", pdp->cNamedArgs); ok(!pdp->cNamedArgs, "cNamedArgs = %d\n", pdp->cNamedArgs);
V_VT(pVarResult) = VT_BSTR; V_VT(pVarResult) = VT_BSTR;
res = SearchPathW(NULL, wscriptexe, NULL, sizeof(fullPath)/sizeof(WCHAR), fullPath, NULL); res = GetModuleFileNameExW(wscript_process, NULL, fullPath, sizeof(fullPath)/sizeof(WCHAR));
if(res == 0) if(res == 0)
return E_FAIL; return E_FAIL;
pos = mystrrchr(fullPath, '\\'); pos = mystrrchr(fullPath, '\\');
...@@ -347,6 +347,7 @@ static void run_test(const char *file_name) ...@@ -347,6 +347,7 @@ static void run_test(const char *file_name)
return; return;
} }
wscript_process = pi.hProcess;
WaitForSingleObject(pi.hProcess, INFINITE); WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hThread); CloseHandle(pi.hThread);
CloseHandle(pi.hProcess); CloseHandle(pi.hProcess);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment