mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 14:24:53 +08:00
120 lines
2.5 KiB
C++
120 lines
2.5 KiB
C++
//
|
|
// main.cpp
|
|
// spine_unit_test
|
|
//
|
|
// Created by Stephen Gowen on 12/7/17.
|
|
// Copyright © 2017 Noctis Games. All rights reserved.
|
|
//
|
|
|
|
#ifdef WIN32
|
|
#include <direct.h>
|
|
#else
|
|
#include <unistd.h>
|
|
#endif // WIN32
|
|
|
|
#include <ctime>
|
|
#include "KString.h"
|
|
#include <stdio.h>
|
|
|
|
#include "spine/Extension.h"
|
|
|
|
#include "SimpleTest.h"
|
|
#include "MemoryTest.h"
|
|
|
|
#include "KMemory.h" // last include
|
|
|
|
using namespace Spine;
|
|
|
|
class KanjiSpineExtension : public DefaultSpineExtension
|
|
{
|
|
public:
|
|
static KanjiSpineExtension* getInstance();
|
|
|
|
virtual ~KanjiSpineExtension();
|
|
|
|
virtual void* spineAlloc(size_t size, const char* file, int line);
|
|
|
|
virtual void* spineCalloc(size_t num, size_t size, const char* file, int line);
|
|
|
|
virtual void* spineRealloc(void* ptr, size_t size, const char* file, int line);
|
|
|
|
virtual void spineFree(void* mem);
|
|
|
|
protected:
|
|
KanjiSpineExtension();
|
|
};
|
|
|
|
KanjiSpineExtension* KanjiSpineExtension::getInstance()
|
|
{
|
|
static KanjiSpineExtension ret;
|
|
return &ret;
|
|
}
|
|
|
|
KanjiSpineExtension::~KanjiSpineExtension()
|
|
{
|
|
// Empty
|
|
}
|
|
|
|
void* KanjiSpineExtension::spineAlloc(size_t size, const char* file, int line)
|
|
{
|
|
return _kanjimalloc(size);
|
|
}
|
|
|
|
void* KanjiSpineExtension::spineCalloc(size_t num, size_t size, const char* file, int line)
|
|
{
|
|
void* ptr = spineAlloc(num * size, file, line);
|
|
if (ptr)
|
|
{
|
|
memset(ptr, 0, num * size);
|
|
}
|
|
|
|
return ptr;
|
|
}
|
|
|
|
void* KanjiSpineExtension::spineRealloc(void* ptr, size_t size, const char* file, int line)
|
|
{
|
|
return _kanjirealloc(ptr, size);
|
|
}
|
|
|
|
void KanjiSpineExtension::spineFree(void* mem)
|
|
{
|
|
_kanjifree(mem);
|
|
}
|
|
|
|
KanjiSpineExtension::KanjiSpineExtension() : DefaultSpineExtension()
|
|
{
|
|
// Empty
|
|
}
|
|
|
|
double timeNow()
|
|
{
|
|
timespec lTimeVal;
|
|
clock_gettime(CLOCK_MONOTONIC, &lTimeVal);
|
|
return lTimeVal.tv_sec + (lTimeVal.tv_nsec * 1.0e-9);
|
|
}
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
SpineExtension::setInstance(KanjiSpineExtension::getInstance());
|
|
|
|
double startTime = timeNow();
|
|
|
|
/* Set working directory to current location for opening test data */
|
|
#ifdef WIN32
|
|
_chdir( GetFileDir(argv[0], false).c_str() );
|
|
#else
|
|
chdir(GetFileDir(argv[0], false).c_str());
|
|
#endif
|
|
|
|
SimpleTest::test();
|
|
MemoryTest::test();
|
|
|
|
// End Timing
|
|
double endTime = timeNow();
|
|
double timeElapsed = (endTime - startTime);
|
|
printf("\n\n%i minutes and %i seconds of your life taken from you by these tests.\n", ((int)timeElapsed) / 60, ((int)timeElapsed) % 60);
|
|
printf("timeElapsed: %f \n", timeElapsed);
|
|
|
|
return 0;
|
|
}
|