You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
2.2 KiB
C++
116 lines
2.2 KiB
C++
5 years ago
|
/*
|
||
|
Utils test
|
||
|
|
||
|
project: RYZOM / TEST
|
||
|
|
||
|
*/
|
||
|
|
||
|
#include "nel/misc/types_nl.h"
|
||
|
#include "nel/misc/common.h"
|
||
|
#include "nel/misc/debug.h"
|
||
|
|
||
|
#include "game_share/singleton_registry.h"
|
||
|
#include "game_share/utils.h"
|
||
|
|
||
|
void traceTest2(int i)
|
||
|
{
|
||
|
CSTRACE;
|
||
|
if (i<2)
|
||
|
traceTest2(++i);
|
||
|
else
|
||
|
SHOW_CALLSTACK;
|
||
|
}
|
||
|
|
||
|
void traceTest()
|
||
|
{
|
||
|
CSTRACE_MSG("foo");
|
||
|
traceTest2(0);
|
||
|
{
|
||
|
int i=0;
|
||
|
CSTRACE_VAR(int,i);
|
||
|
CSTRACE_VAL(int,i);
|
||
|
i=1;
|
||
|
SHOW_CALLSTACK;
|
||
|
}
|
||
|
WARN_CALLSTACK;
|
||
|
}
|
||
|
|
||
|
class CUtilsTest: public IServiceSingleton
|
||
|
{
|
||
|
public:
|
||
|
void init()
|
||
|
{
|
||
|
// nel info, warning and debug redirectrion tests
|
||
|
nldebug("debug"); nlinfo("info"); nlwarning("warning");
|
||
|
{
|
||
|
CNLLogOverride hold(NLMISC::DebugLog);
|
||
|
nldebug("debug"); nlinfo("info"); nlwarning("warning");
|
||
|
}
|
||
|
{
|
||
|
CNLLogOverride hold(NLMISC::InfoLog);
|
||
|
nldebug("debug"); nlinfo("info"); nlwarning("warning");
|
||
|
}
|
||
|
{
|
||
|
CNLLogOverride hold(NLMISC::WarningLog);
|
||
|
nldebug("debug"); nlinfo("info"); nlwarning("warning");
|
||
|
}
|
||
|
nldebug("debug"); nlinfo("info"); nlwarning("warning");
|
||
|
|
||
|
|
||
|
// handy vector method tests
|
||
|
std::vector<sint64> vect;
|
||
|
|
||
|
vectAppend(vect)= 0; nlassert(vect.size()==1); nlassert(vect[0]==0);
|
||
|
vectAppend(vect)= 1; nlassert(vect.size()==2); nlassert(vect[1]==1);
|
||
|
vectAppend(vect)= 2; nlassert(vect.size()==3); nlassert(vect[2]==2);
|
||
|
|
||
|
vectInsert(vect,2); nlassert(vect.size()==3); nlassert(vect[0]+vect[1]+vect[2]==3);
|
||
|
vectInsert(vect,4); nlassert(vect.size()==4); nlassert(vect[3]==4);
|
||
|
|
||
|
// handy ptr class tests
|
||
|
CTestClass tc;
|
||
|
|
||
|
CTestClass* tcptr= &tc;
|
||
|
CTestClass& tcref= tc;
|
||
|
IPtr<CTestClass> ptr;
|
||
|
ptr= tcptr;
|
||
|
ptr= &tc;
|
||
|
ptr= &tcref;
|
||
|
++ptr;
|
||
|
--ptr;
|
||
|
tcptr= ptr.operator->();
|
||
|
tcref= *ptr;
|
||
|
nlassert(ptr==ptr);
|
||
|
nlassert(!(ptr!=ptr));
|
||
|
nlassert(ptr==tcptr);
|
||
|
nlassert(!(ptr!=tcptr));
|
||
|
|
||
|
CTestClass const* ctcptr= &tc;
|
||
|
CTestClass const& ctcref= tc;
|
||
|
IConstPtr<CTestClass> cptr;
|
||
|
cptr= ctcptr;
|
||
|
cptr= &tc;
|
||
|
cptr= &ctcref;
|
||
|
++cptr;
|
||
|
--cptr;
|
||
|
ctcptr= cptr.operator->();
|
||
|
// ctcref= *cptr;
|
||
|
nlassert(cptr==cptr);
|
||
|
nlassert(!(cptr!=cptr));
|
||
|
nlassert(cptr==ctcptr);
|
||
|
nlassert(!(cptr!=ctcptr));
|
||
|
|
||
|
// trace system test
|
||
|
traceTest();
|
||
|
}
|
||
|
|
||
|
class CTestClass
|
||
|
{
|
||
|
public:
|
||
|
int a,b;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
static CUtilsTest UtilsTest;
|
||
|
|