MD5Update function uses StringPiece instead of raw buffer.
BUG=none
TEST=base_unittests --gtest_filter=MD5.ContextWithStringData*
Review URL: http://codereview.chromium.org/7466003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94203 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/md5_unittest.cc b/base/md5_unittest.cc
index c81ff12..a20d819 100644
--- a/base/md5_unittest.cc
+++ b/base/md5_unittest.cc
@@ -120,7 +120,8 @@
if (len > length - total)
len = length - total;
- MD5Update(&ctx, data.get() + total, len);
+ MD5Update(&ctx,
+ StringPiece(reinterpret_cast<char*>(data.get() + total), len));
total += len;
}
@@ -188,4 +189,19 @@
EXPECT_EQ(expected, actual);
}
+TEST(MD5, ContextWithStringData) {
+ MD5Context ctx;
+ MD5Init(&ctx);
+
+ MD5Update(&ctx, "abc");
+
+ MD5Digest digest;
+ MD5Final(&digest, &ctx);
+
+ std::string actual = MD5DigestToBase16(digest);
+ std::string expected = "900150983cd24fb0d6963f7d28e17f72";
+
+ EXPECT_EQ(expected, actual);
+}
+
} // namespace base