From: Casey Bodley Date: Mon, 29 Jan 2018 22:10:58 +0000 (-0500) Subject: test/log: add failing unit test for reuse of bad stream X-Git-Tag: v13.0.2~391^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a6bf362d3c4e9eb8192860f8abeac622d896e825;p=ceph.git test/log: add failing unit test for reuse of bad stream Signed-off-by: Casey Bodley --- diff --git a/src/log/test.cc b/src/log/test.cc index 36fde96eb491..73f037191bab 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)