| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #ifndef _RVC_SPTEST_H__
- #define _RVC_SPTEST_H__
- #pragma once
- #include "SpBase.h"
- #include "SpHelper.h"
- //helper macro for test temporary.
- #define TEST_MODE_SWITCH_ON 1
- #if defined(TEST_MODE_SWITCH_ON) && TEST_MODE_SWITCH_ON == 1
- #define IFFAILRET(func) \
- do { \
- ErrorCodeEnum errorCode = func; \
- if (errorCode != Error_Succeed) { \
- LogError(Severity_High, Error_Failed, 0,\
- CSimpleStringA::Format("Invoke \"" #func "\" failed ec %s! at file: <%s>, line: %d",\
- SpStrError(errorCode), _GetFileName(__FILE__), __LINE__));\
- return Error_Failed; \
- } \
- } while (false)
- #define IFFAILBREAK(func) \
- do { \
- ErrorCodeEnum errorCode = func; \
- if (errorCode != Error_Succeed) { \
- LogError(Severity_High, Error_Failed, 0,\
- CSimpleStringA::Format("Invoke \"" #func "\" failed ec %s! at file: <%s>, line: %d",\
- SpStrError(errorCode), _GetFileName(__FILE__), __LINE__));\
- return; \
- } \
- } while (false)
- #define REQUIRE(expr) \
- do { \
- if (!(expr)) { \
- LogError(Severity_High, Error_Failed, 0,\
- CSimpleStringA::Format("expression (\"" #expr "\") requires failed! at file: <%s>, line: %d", _GetFileName(__FILE__), __LINE__));\
- return Error_Failed; \
- } \
- } while (false)
- #define CHECK(expr) \
- do { \
- if (!(expr)) { \
- LogError(Severity_High, Error_Failed, 0,\
- CSimpleStringA::Format("expression (\"" #expr "\") requires failed! at file: <%s>, line: %d", _GetFileName(__FILE__), __LINE__));\
- return; \
- } \
- } while (false)
- #define THROW_FATAL(fmt, ...) \
- LogError(Severity_High, Error_Failed, 0, \
- CSimpleStringA::Format("%s at file: <%s>, line: %d", \
- (LPCTSTR)CSimpleStringA::Format(fmt, ##__VA_ARGS__), _GetFileName(__FILE__), __LINE__))
- #define THROW_ERROR(fmt, ...) \
- LogError(Severity_Middle, Error_Failed, 0, \
- CSimpleStringA::Format("%s at file: <%s>, line: %d", \
- (LPCTSTR)CSimpleStringA::Format(fmt, ##__VA_ARGS__), _GetFileName(__FILE__), __LINE__))
- #else
- #define IFFAILRET(func)
- #define IFFAILBREAK(func)
- #define REQUIRE(expr)
- #define CHECK(expr)
- #define THROW_FATAL(fmt, ...)
- #define THROW_ERROR(fmt, ...)
- #endif
- #define REQUIRE_FALSE(expr) \
- REQUIRE(!(expr))
- #define CHECK_FALSE(expr) \
- CHECK(!(expr))
- /** Test Case */
- struct ITestCaseSuite
- {
- };
- template<typename T>
- class MethodTestCaseT
- {
- public:
- /*Prototype of Test Case Function*/
- typedef ErrorCodeEnum(T::* TestCaseFunction)(const CAutoArray<CSimpleStringA>& strArgs);
- MethodTestCaseT(TestCaseFunction pFunc, const CAutoArray<CSimpleStringA>& strArgs)
- : m_pFunc(pFunc),m_strArgs()
- {
- m_strArgs.Copy(strArgs);
- }
- virtual void Invoke(T* t) const
- {
- (t->*m_pFunc)(m_strArgs);
- }
- private:
- virtual ~MethodTestCaseT() {}
- TestCaseFunction m_pFunc;
- CAutoArray<CSimpleStringA> m_strArgs;
- };
- #endif //_RVC_SPTEST_H__
|