home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 Mobile
/
Chip_Mobile_2001.iso
/
palm
/
business
/
printcar
/
printcar.exe
/
tests
/
Test.h
< prev
Wrap
C/C++ Source or Header
|
2000-06-03
|
2KB
|
83 lines
//
// $Id: Test.h,v 1.1.1.1 2000/06/02 22:22:57 sergey Exp $
//
#ifndef _Test_h_
#define _Test_h_
class TestError;
class TestResult;
//==============================================================================
// Test case class
//==============================================================================
class Test
{
public:
Test(): _testResult(0), _errors(0) {}
virtual ~Test() {}
void run(TestResult& result);
virtual void runTest() = 0;
virtual const char* name() const = 0;
void checkAssert(bool condition, const char* comment, const char* file, int line);
TestResult& testResult() const { return *_testResult; }
private:
TestResult* _testResult;
int _errors;
};
//==============================================================================
// Test result class
//==============================================================================
class TestResult
{
public:
virtual ~TestResult() {}
virtual void logMessage(const char* testName, const char* message) = 0;
virtual void logError(const char* testName, const TestError& e) = 0;
};
//==============================================================================
// Test error class
//==============================================================================
class TestError
{
public:
TestError(const char* message, const char* file, int line):
_message(message), _file(file), _line(line) {}
const char* message() const { return _message; }
const char* file() const { return _file; }
int line() const { return _line; }
private:
const char* _message;
const char* _file;
int _line;
};
//==============================================================================
// Test assert macros
//==============================================================================
#define testAssert(condition) \
(this->checkAssert((condition), (#condition), __FILE__, __LINE__))
#define testAssertComment(condition, comment) \
(this->checkAssert((condition), (comment), __FILE__, __LINE__))
#endif // _Test_h_