TEST: Fix CxxTest::ErrorPrinter with --no-std

This commit is contained in:
Matthew Jimenez
2026-05-15 19:54:47 -05:00
parent a7bca22b80
commit dfa2bd8346
3 changed files with 14 additions and 28 deletions
+12 -26
View File
@@ -16,30 +16,18 @@
// 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
// The ErrorPrinter uses stdout
//
#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
#include <stdio.h>
namespace CxxTest
{
class ErrorPrinter : public ErrorFormatter
{
public:
ErrorPrinter(CXXTEST_STD(ostream) &o = CXXTEST_STD(cout), const char *preLine = ":", const char *postLine = "",
ErrorPrinter(FILE *o = stdout, const char *preLine = ":", const char *postLine = "",
const char *errorString = "Error",
const char *warningString = "Warning") :
ErrorFormatter(new Adapter(o), preLine, postLine, errorString, warningString) {}
@@ -48,19 +36,17 @@ public:
private:
class Adapter : public OutputStream
{
CXXTEST_STD(ostream) &_o;
Adapter(const Adapter &);
Adapter &operator=(const Adapter &);
FILE *_o;
public:
Adapter(CXXTEST_STD(ostream) &o) : _o(o) {}
void flush() { _o.flush(); }
OutputStream &operator<<(const char *s) { _o << s; return *this; }
Adapter(FILE *o) : _o(o) {}
void flush() { fflush(_o); }
OutputStream &operator<<(unsigned i) { fprintf(_o, "%u", i); return *this; }
OutputStream &operator<<(const char *s) { fputs(s, _o); 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;
}
};
};
}
+1 -1
View File
@@ -32,7 +32,7 @@ namespace CxxTest
class MSVCErrorPrinter : public ErrorPrinter
{
public:
MSVCErrorPrinter(CXXTEST_STD(ostream) &o = CXXTEST_STD(cout))
MSVCErrorPrinter(FILE *o = stdout)
: ErrorPrinter(o, "(", ") ", "error C2999", "warning C4999") {}
};
}
+1 -1
View File
@@ -25,7 +25,7 @@ namespace CxxTest
class ParenPrinter : public ErrorPrinter
{
public:
ParenPrinter(CXXTEST_STD(ostream) &o = CXXTEST_STD(cout)) : ErrorPrinter(o, "(", ")") {}
ParenPrinter(FILE *o = stdout) : ErrorPrinter(o, "(", ")") {}
};
}