forked from Mirrors/openclonk
60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
/*
|
|
* OpenClonk, http://www.openclonk.org
|
|
*
|
|
* Copyright (c) 2016, The OpenClonk Team and contributors
|
|
*
|
|
* Distributed under the terms of the ISC license; see accompanying file
|
|
* "COPYING" for details.
|
|
*
|
|
* "Clonk" is a registered trademark of Matthes Bender, used with permission.
|
|
* See accompanying file "TRADEMARK" for details.
|
|
*
|
|
* To redistribute this file separately, substitute the full license texts
|
|
* for the above references.
|
|
*/
|
|
|
|
#include <stdarg.h>
|
|
#include <gmock/gmock.h>
|
|
|
|
class TestLog
|
|
{
|
|
public:
|
|
virtual ~TestLog();
|
|
static void setHandler(TestLog *new_handler);
|
|
|
|
protected:
|
|
virtual bool Log(const char *msg) = 0;
|
|
virtual bool DebugLog(const char *msg) = 0;
|
|
virtual bool LogFatal(const char *msg) = 0;
|
|
virtual bool LogSilent(const char *msg) = 0;
|
|
|
|
virtual bool LogF(const char *format, va_list args) = 0;
|
|
virtual bool DebugLogF(const char *format, va_list args) = 0;
|
|
virtual bool LogSilentF(const char *format, va_list args) = 0;
|
|
|
|
TestLog();
|
|
|
|
private:
|
|
static TestLog *handler;
|
|
|
|
friend bool Log(const char*);
|
|
friend bool DebugLog(const char*);
|
|
friend bool LogFatal(const char*);
|
|
friend bool LogSilent(const char*);
|
|
friend bool LogF(const char*, ...);
|
|
friend bool DebugLogF(const char*, ...);
|
|
friend bool LogSilentF(const char*, ...);
|
|
};
|
|
|
|
class LogMock : public TestLog
|
|
{
|
|
public:
|
|
MOCK_METHOD1(Log, bool(const char*));
|
|
MOCK_METHOD1(DebugLog, bool(const char*));
|
|
MOCK_METHOD1(LogFatal, bool(const char*));
|
|
MOCK_METHOD1(LogSilent, bool(const char*));
|
|
MOCK_METHOD2(LogF, bool(const char*, va_list));
|
|
MOCK_METHOD2(DebugLogF, bool(const char*, va_list));
|
|
MOCK_METHOD2(LogSilentF, bool(const char*, va_list));
|
|
};
|