bugfix: tools: copy string out, expected nul-termination

tools: There were some subtle issues with std::string, where it's not
always nul-terminated.  Therefore comparisons that looked identical
weren't because one instance of the std::string would be nul-terminated
and the other not.

test: response from enumerate must nul-terminate bytes
The response from the IPMI command will include a trailing
nul-terminator.

Change-Id: I8ff18b0c52c5288170257414572bee2366ccc431
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/test/tools_blob_unittest.cpp b/test/tools_blob_unittest.cpp
index a04a741..cbbb151 100644
--- a/test/tools_blob_unittest.cpp
+++ b/test/tools_blob_unittest.cpp
@@ -41,7 +41,7 @@
 
     /* return value. */
     std::vector<std::uint8_t> resp = {0xcf, 0xc2, 0x00, 0x00, 0x00,
-                                      'a',  'b',  'c',  'd'};
+                                      'a',  'b',  'c',  'd',  0x00};
 
     EXPECT_CALL(ipmiMock, sendPacket(Eq(request))).WillOnce(Return(resp));
     EXPECT_STREQ("abcd", blob.enumerateBlob(1).c_str());
@@ -86,11 +86,12 @@
 
     /* return value. */
     std::vector<std::uint8_t> resp2 = {0xcf, 0xc2, 0x00, 0x00, 0x00,
-                                       'a',  'b',  'c',  'd'};
+                                       'a',  'b',  'c',  'd',  0x00};
 
     EXPECT_CALL(ipmiMock, sendPacket(Eq(request2))).WillOnce(Return(resp2));
 
-    std::vector<std::string> expectedList = {"abcd"};
+    /* A std::string is not nul-terminated by default. */
+    std::vector<std::string> expectedList = {std::string{"abcd"}};
 
     EXPECT_EQ(expectedList, blob.getBlobList());
 }