From: Jason Dillaman Date: Mon, 15 Dec 2014 17:37:05 +0000 (-0500) Subject: librbd: fixed garbage output from test LibRBD.TestIOPP X-Git-Tag: v0.91~55^2~11^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=394fd4c21264cc48bcbb5f8439b5e64856c963f6;p=ceph.git librbd: fixed garbage output from test LibRBD.TestIOPP buffer::list::c_str does not actually provide a C-style, NULL terminated string. As a result, its use for console output resulted in stray garbage characters being printed. Fixes: #9405 Signed-off-by: Jason Dillaman --- diff --git a/src/test/librbd/test_librbd.cc b/src/test/librbd/test_librbd.cc index 919de2af7448e..1a43e7c132a0c 100644 --- a/src/test/librbd/test_librbd.cc +++ b/src/test/librbd/test_librbd.cc @@ -908,9 +908,14 @@ void read_test_data(librbd::Image& image, const char *expected, off_t off, size_ ceph::bufferlist bl; read = image.read(off + total_read, len, bl); ASSERT_TRUE(read >= 0); + std::string bl_str(bl.c_str(), read); + printf("read: %u\n", (unsigned int) read); - printf("read: %s\nexpected: %s\n", bl.c_str(), expected); - ASSERT_EQ(0, memcmp(bl.c_str(), expected, expected_len)); + int result = memcmp(bl_str.c_str(), expected, expected_len); + if (result != 0) { + printf("read: %s\nexpected: %s\n", bl_str.c_str(), expected); + ASSERT_EQ(0, result); + } *passed = true; }