mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
69 lines
2.1 KiB
C++
69 lines
2.1 KiB
C++
/*
|
|
-------------------------------------------------------------------------
|
|
CxxTest: A lightweight C++ unit testing library.
|
|
Copyright (c) 2008 Sandia Corporation.
|
|
This software is distributed under the LGPL License v3
|
|
For more information, see the COPYING file in the top CxxTest directory.
|
|
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
|
|
the U.S. Government retains certain rights in this software.
|
|
-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef __cxxtest__ErrorPrinter_h__
|
|
#define __cxxtest__ErrorPrinter_h__
|
|
|
|
//
|
|
// The ErrorPrinter is a simple TestListener that
|
|
// just prints "OK" if everything goes well, otherwise
|
|
// reports the error in the format of compiler messages.
|
|
// The ErrorPrinter uses std::cout
|
|
//
|
|
|
|
#include <cxxtest/Flags.h>
|
|
|
|
#ifndef _CXXTEST_HAVE_STD
|
|
# define _CXXTEST_HAVE_STD
|
|
#endif // _CXXTEST_HAVE_STD
|
|
|
|
#include <cxxtest/ErrorFormatter.h>
|
|
#include <cxxtest/StdValueTraits.h>
|
|
|
|
#ifdef _CXXTEST_OLD_STD
|
|
# include <iostream.h>
|
|
#else // !_CXXTEST_OLD_STD
|
|
# include <iostream>
|
|
#endif // _CXXTEST_OLD_STD
|
|
|
|
namespace CxxTest
|
|
{
|
|
class ErrorPrinter : public ErrorFormatter
|
|
{
|
|
public:
|
|
ErrorPrinter(CXXTEST_STD(ostream) &o = CXXTEST_STD(cout), const char *preLine = ":", const char *postLine = "",
|
|
const char *errorString = "Error",
|
|
const char *warningString = "Warning") :
|
|
ErrorFormatter(new Adapter(o), preLine, postLine, errorString, warningString) {}
|
|
virtual ~ErrorPrinter() { delete outputStream(); }
|
|
|
|
private:
|
|
class Adapter : public OutputStream
|
|
{
|
|
CXXTEST_STD(ostream) &_o;
|
|
public:
|
|
Adapter(CXXTEST_STD(ostream) &o) : _o(o) {}
|
|
void flush() { _o.flush(); }
|
|
OutputStream &operator<<(const char *s) { _o << s; return *this; }
|
|
OutputStream &operator<<(Manipulator m) { return OutputStream::operator<<(m); }
|
|
OutputStream &operator<<(unsigned i)
|
|
{
|
|
char s[1 + 3 * sizeof(unsigned)];
|
|
numberToString(i, s);
|
|
_o << s;
|
|
return *this;
|
|
}
|
|
};
|
|
};
|
|
}
|
|
|
|
#endif // __cxxtest__ErrorPrinter_h__
|