From dfa2bd8346f8437370c40c11d4f8820d1d645585 Mon Sep 17 00:00:00 2001 From: Matthew Jimenez Date: Fri, 15 May 2026 19:54:47 -0500 Subject: [PATCH] TEST: Fix CxxTest::ErrorPrinter with --no-std --- test/cxxtest/cxxtest/ErrorPrinter.h | 38 ++++++++----------------- test/cxxtest/cxxtest/MSVCErrorPrinter.h | 2 +- test/cxxtest/cxxtest/ParenPrinter.h | 2 +- 3 files changed, 14 insertions(+), 28 deletions(-) diff --git a/test/cxxtest/cxxtest/ErrorPrinter.h b/test/cxxtest/cxxtest/ErrorPrinter.h index 8d5b172539b..3b6c237d46c 100644 --- a/test/cxxtest/cxxtest/ErrorPrinter.h +++ b/test/cxxtest/cxxtest/ErrorPrinter.h @@ -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 - -#ifndef _CXXTEST_HAVE_STD -# define _CXXTEST_HAVE_STD -#endif // _CXXTEST_HAVE_STD - #include -#include - -#ifdef _CXXTEST_OLD_STD -# include -#else // !_CXXTEST_OLD_STD -# include -#endif // _CXXTEST_OLD_STD +#include 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; - } }; }; } diff --git a/test/cxxtest/cxxtest/MSVCErrorPrinter.h b/test/cxxtest/cxxtest/MSVCErrorPrinter.h index 845d7041d26..21a41bf94ba 100644 --- a/test/cxxtest/cxxtest/MSVCErrorPrinter.h +++ b/test/cxxtest/cxxtest/MSVCErrorPrinter.h @@ -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") {} }; } diff --git a/test/cxxtest/cxxtest/ParenPrinter.h b/test/cxxtest/cxxtest/ParenPrinter.h index 3a114af6591..6485c941496 100644 --- a/test/cxxtest/cxxtest/ParenPrinter.h +++ b/test/cxxtest/cxxtest/ParenPrinter.h @@ -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, "(", ")") {} }; }