Skip to content

Commit

Permalink
Link tests directly with obj files of jN
Browse files Browse the repository at this point in the history
  • Loading branch information
Eugen Kremer committed Oct 13, 2024
1 parent 400289d commit 4a6c296
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 47 deletions.
7 changes: 2 additions & 5 deletions common/CallBack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,10 @@ size_t CallBack::Call(void* params){

SysFreeString(var[0].bstrVal);

VARTYPE type = VT_UI4;
VARTYPE type = (sizeof(size_t) > sizeof(DWORD))? VT_UI8 : VT_UI4;
HRESULT hr = VariantChangeType(&result, &result, 0, type);

DWORD dwResult = 0;
dwResult = result.uintVal;

return dwResult;
return (sizeof(size_t) > sizeof(DWORD)) ? result.llVal : result.lVal;
}

CallBack::~CallBack(){
Expand Down
5 changes: 4 additions & 1 deletion common/CallBack.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class CallBack :public CComDispatch<ICallBack>
CBP* Proc();

template<int NUM>
static size_t WINAPI CallBackProc(size_t r1, size_t r2,size_t r3,size_t r4,size_t stack1){
static size_t WINAPI CallBackProc(size_t r1, ...){
#ifndef _M_X64
void* v_ebp = &r1; // base pointer, points to actual parameters of called callback function

Expand Down Expand Up @@ -56,6 +56,9 @@ class CallBack :public CComDispatch<ICallBack>

return 0;
#else
va_list vars; // enforce the compiler to store
va_start(vars, r1); // integer registers on stack

void* v_ebp = &r1; // base pointer, points to actual parameters of called callback function

CallBack* cb = *GetCallBack(NUM);
Expand Down
11 changes: 7 additions & 4 deletions jN.sln
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jN", "jN.vcxproj", "{1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tests", "tests\tests.vcxproj", "{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}"
ProjectSection(ProjectDependencies) = postProject
{1590D7CD-7D3A-4AB7-A355-EE02F7FB987D} = {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -27,10 +30,10 @@ Global
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Debug|Win32.Build.0 = Debug|Win32
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Debug|x64.ActiveCfg = Debug|x64
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Debug|x64.Build.0 = Debug|x64
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Release|Win32.ActiveCfg = Debug|Win32
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Release|Win32.Build.0 = Debug|Win32
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Release|x64.ActiveCfg = Debug|x64
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Release|x64.Build.0 = Debug|x64
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Release|Win32.ActiveCfg = Release|Win32
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Release|Win32.Build.0 = Release|Win32
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Release|x64.ActiveCfg = Release|x64
{255FBEA7-0EEB-432C-A4DB-B88C9D0572F4}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
10 changes: 4 additions & 6 deletions jN.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>.\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_USRDLL;NPPPLUGINTEMPLATE_EXPORTS;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
Expand Down Expand Up @@ -112,7 +112,7 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>.\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_USRDLL;NPPPLUGINTEMPLATE_EXPORTS;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
Expand Down Expand Up @@ -149,9 +149,8 @@
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NPPPLUGINTEMPLATE_EXPORTS;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader />
<PrecompiledHeaderFile />
<WarningLevel>Level3</WarningLevel>
Expand Down Expand Up @@ -185,9 +184,8 @@
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NPPPLUGINTEMPLATE_EXPORTS;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<PrecompiledHeaderFile>
Expand Down
12 changes: 9 additions & 3 deletions tests/CallBackTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,11 @@ class TestCfg : public IDispatchEx{
virtual HRESULT __stdcall InvokeEx(DISPID id, LCID lcid, WORD wFlags, DISPPARAMS* pdp, VARIANT* pvarRes, EXCEPINFO* pei, IServiceProvider* pspCaller) override
{
Stack = pdp->rgvarg[1].bstrVal;
pvarRes->uintVal = Result;


pvarRes->vt = VT_UI4;
pvarRes->lVal = Result;

return S_OK;
}
virtual HRESULT __stdcall DeleteMemberByName(BSTR bstrName, DWORD grfdex) override
Expand Down Expand Up @@ -106,7 +109,10 @@ TEST(CallBackTests, With_parameter_has_corresponding_stack_len_and_result) {

EXPECT_EQ(SysStringByteLen(cfg.Stack), 2*(sizeof(size_t)));
EXPECT_EQ(result, cfg.Result);
EXPECT_EQ((int)(((size_t*)cfg.Stack)[0]), 123);
EXPECT_EQ((int)(((size_t*)cfg.Stack)[1]), 456);

auto stack = (size_t*)cfg.Stack;

EXPECT_EQ(*(int*)stack, 123);
EXPECT_EQ(*(int*)(stack+1), 456);
}
}
9 changes: 3 additions & 6 deletions tests/tests.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,6 @@
<PropertyGroup Label="UserMacros" />
<ItemGroup>
<ClCompile Include="*Tests.cpp" />
<ClCompile Include="../common/**/*.cpp" />
<MASM Include="../common\x64Dispatcher.asm">
<ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild>
</MASM>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
Expand All @@ -56,15 +52,16 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<Optimization>Disabled</Optimization>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary Condition="'$(Configuration)'=='Debug'">MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeLibrary Condition="'$(Configuration)'=='Release'">MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies Condition="'$(Platform)'=='Win32'">$(MSBuildProjectDirectory)\..\$(Configuration)\*.obj;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies Condition="'$(Platform)'=='x64'">$(MSBuildProjectDirectory)\..\x64\$(Configuration)\*.obj;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
Expand Down
22 changes: 0 additions & 22 deletions tests/tests.vcxproj.filters

This file was deleted.

0 comments on commit 4a6c296

Please sign in to comment.