From a6bf362d3c4e9eb8192860f8abeac622d896e825 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Mon, 29 Jan 2018 17:10:58 -0500 Subject: [PATCH] test/log: add failing unit test for reuse of bad stream Signed-off-by: Casey Bodley --- src/log/test.cc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/log/test.cc b/src/log/test.cc index 36fde96eb49..73f037191ba 100644 --- a/src/log/test.cc +++ b/src/log/test.cc @@ -46,6 +46,35 @@ TEST(Log, Simple) log.stop(); } +TEST(Log, ReuseBad) +{ + SubsystemMap subs; + subs.add(1, "foo", 1, 1); + Log log(&subs); + log.start(); + log.set_log_file("/tmp/foo"); + log.reopen_log_file(); + + const int l = 0; + { + auto e = log.create_entry(l, 1); + auto& out = e->get_ostream(); + out << (const char*)nullptr; + EXPECT_TRUE(out.bad()); // writing nullptr to a stream sets its badbit + log.submit_entry(e); + } + { + auto e = log.create_entry(l, 1); + auto& out = e->get_ostream(); + EXPECT_FALSE(out.bad()); // should not see failures from previous log entry + out << "hello world"; + log.submit_entry(e); + } + + log.flush(); + log.stop(); +} + int many = 10000; TEST(Log, ManyNoGather) -- 2.39.5