Skip to content

Commit 677c8c9

Browse files
committed
Capture SDF warnings in tests
1 parent c5f0e36 commit 677c8c9

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

tests/integration/io/test_SdfParser.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,9 @@ class LogCapture
161161
mLogger->set_level(spdlog::level::trace);
162162
mLogger->flush_on(spdlog::level::trace);
163163
spdlog::set_default_logger(mLogger);
164+
// Capture third-party warnings that log directly to stdout/stderr.
165+
mOldCout = std::cout.rdbuf(mStream->rdbuf());
166+
mOldCerr = std::cerr.rdbuf(mStream->rdbuf());
164167
#else
165168
mOldCout = std::cout.rdbuf(mStream.rdbuf());
166169
mOldCerr = std::cerr.rdbuf(mStream.rdbuf());
@@ -175,6 +178,10 @@ class LogCapture
175178
spdlog::set_default_logger(mPreviousLogger);
176179
if (mLogger)
177180
spdlog::drop(mLogger->name());
181+
if (mOldCout)
182+
std::cout.rdbuf(mOldCout);
183+
if (mOldCerr)
184+
std::cerr.rdbuf(mOldCerr);
178185
#else
179186
std::cout.rdbuf(mOldCout);
180187
std::cerr.rdbuf(mOldCerr);
@@ -200,6 +207,8 @@ class LogCapture
200207
std::shared_ptr<spdlog::sinks::ostream_sink_mt> mSink;
201208
std::shared_ptr<spdlog::logger> mPreviousLogger;
202209
std::shared_ptr<spdlog::logger> mLogger;
210+
std::streambuf* mOldCout{nullptr};
211+
std::streambuf* mOldCerr{nullptr};
203212
#else
204213
std::ostringstream mStream;
205214
std::streambuf* mOldCout;

0 commit comments

Comments
 (0)