1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2025-02-26 19:54:14 +01:00
David Anderson 4941565f18 narrowed down valgrind complaints by adding SH_REMOVE to all the test cases
--HG--
branch : sourcemm-1.4.3
extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40609
2008-01-07 07:30:48 +00:00

50 lines
1001 B
C++

// TESTBAIL
// Different compilation unit
#include "sourcehook.h"
#include "sourcehook_test.h"
#include "testbail.h"
static unsigned int n_calls = 0;
int EatYams_Handler2(int a)
{
ADD_STATE(State_EatYams_Handler2_Called(a));
RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, 6, &IGaben::EatYams, (0xBEEF));
}
int EatYams_Handler3(int a)
{
ADD_STATE(State_EatYams_Handler3_Called(a));
RETURN_META_VALUE(MRES_IGNORED, 0);
}
namespace N_TestBail
{
bool TestBail2(std::string &error)
{
g_PLID = 2;
SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler2, false);
SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler3, false);
int ret = g_Gabgab->EatYams(0xDEAD);
CHECK_COND(ret == 6, "Part 2.1");
n_calls++;
return true;
}
void UntestBail2()
{
while (n_calls)
{
SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler3, false);
SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler2, false);
n_calls--;
}
}
}