Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
|
Mark Mentovai
2011/04/22 03:13:29
In addition to the test data that you have, I’d li
| |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include <string> | |
| 6 | |
| 7 #include "base/logging.h" | |
| 8 #include "base/md5.h" | |
| 9 #include "testing/gtest/include/gtest/gtest.h" | |
| 10 | |
| 11 using namespace std; | |
|
Mark Mentovai
2011/04/22 03:13:29
This is forbidden.
http://google-styleguide.googl
| |
| 12 | |
| 13 TEST(MD5, EmtpyString) { | |
| 14 MD5Digest digest; | |
| 15 const char* data = ""; | |
| 16 | |
| 17 MD5Sum(data, strlen(data), &digest); | |
|
Mark Mentovai
2011/04/22 03:13:29
#include <string.h>.
Alternatively, #include "bas
| |
| 18 | |
| 19 string expected = "d41d8cd98f00b204e9800998ecf8427e"; | |
| 20 string actual = MD5DigestToBase16(digest); | |
|
Mark Mentovai
2011/04/22 03:13:29
All of your tests run “actual” through MD5DigestTo
| |
| 21 | |
| 22 EXPECT_EQ(expected, actual); | |
| 23 } | |
| 24 | |
| 25 TEST(MD5, OneByteStrnig) { | |
|
Mark Mentovai
2011/04/22 03:13:29
Typo: OneByteString.
| |
| 26 MD5Digest digest; | |
| 27 const char* data = "a"; | |
| 28 | |
| 29 MD5Sum(data, strlen(data), &digest); | |
| 30 | |
| 31 string expected = "0cc175b9c0f1b6a831c399e269772661"; | |
| 32 string actual = MD5DigestToBase16(digest); | |
| 33 | |
| 34 EXPECT_EQ(expected, actual); | |
| 35 } | |
| 36 | |
| 37 TEST(MD5, ShortString) { | |
| 38 MD5Digest digest; | |
| 39 const char* data = "The quick brown fox jumps over the lazy dog"; | |
| 40 | |
| 41 MD5Sum(data, strlen(data), &digest); | |
| 42 | |
| 43 string expected = "9e107d9d372bb6826bd81d3542a419d6"; | |
| 44 string actual = MD5DigestToBase16(digest); | |
| 45 | |
| 46 EXPECT_EQ(expected, actual); | |
| 47 } | |
| 48 | |
| 49 TEST(MD5, LongString) { | |
| 50 MD5Digest digest; | |
| 51 | |
| 52 const int N = 10 * 1024 * 1024 + 1; | |
|
Mark Mentovai
2011/04/22 03:13:29
N is a bad name for a variable. Also below on line
| |
| 53 char* data = new char[N]; | |
| 54 | |
| 55 for (int i = 0; i < N; ++i) { | |
| 56 data[i] = i & 0xFF; | |
| 57 } | |
| 58 | |
| 59 MD5Sum(data, N, &digest); | |
| 60 | |
| 61 string expected = "90bd6ad90acef5adaa92203e21c7a13e"; | |
| 62 string actual = MD5DigestToBase16(digest); | |
| 63 | |
| 64 EXPECT_EQ(expected, actual); | |
| 65 | |
| 66 delete[] data; | |
| 67 } | |
| 68 | |
| 69 TEST(MD5, ContextWithEmptyData) { | |
| 70 MD5Context ctx; | |
| 71 MD5Init(&ctx); | |
| 72 | |
| 73 MD5Digest digest; | |
| 74 MD5Final(&digest, &ctx); | |
| 75 | |
| 76 string expected = "d41d8cd98f00b204e9800998ecf8427e"; | |
| 77 string actual = MD5DigestToBase16(digest); | |
| 78 | |
| 79 EXPECT_EQ(expected, actual); | |
| 80 } | |
| 81 | |
| 82 TEST(MD5, ContextWithLongData) { | |
| 83 MD5Context ctx; | |
| 84 MD5Init(&ctx); | |
| 85 | |
| 86 const int N = 10 * 1024 * 1024 + 1; | |
| 87 char* data = new char[N]; | |
| 88 | |
| 89 for (int i = 0; i < N; ++i) { | |
| 90 data[i] = i & 0xFF; | |
| 91 } | |
| 92 | |
| 93 int totalLen = 0; | |
|
Mark Mentovai
2011/04/22 03:13:29
Variables are named like_this and not likeThis.
h
| |
| 94 while (totalLen < N) { | |
| 95 int len = 4097; // intentionally not 2^k. | |
|
Mark Mentovai
2011/04/22 03:13:29
http://google-styleguide.googlecode.com/svn/trunk/
| |
| 96 if (len > N - totalLen) { | |
| 97 len = N - totalLen; | |
| 98 } | |
| 99 | |
| 100 MD5Update(&ctx, data + totalLen, len); | |
| 101 totalLen += len; | |
| 102 } | |
| 103 | |
| 104 DCHECK_EQ(totalLen, N); | |
|
Mark Mentovai
2011/04/22 03:13:29
EXPECT_EQ(N, total_length)?
| |
| 105 | |
| 106 MD5Digest digest; | |
| 107 MD5Final(&digest, &ctx); | |
| 108 | |
| 109 string expected = "90bd6ad90acef5adaa92203e21c7a13e"; | |
| 110 string actual = MD5DigestToBase16(digest); | |
| 111 | |
| 112 EXPECT_EQ(expected, actual); | |
| 113 | |
| 114 delete[] data; | |
| 115 } | |
|
Mark Mentovai
2011/04/22 03:13:29
No test of MD5String?
| |
| OLD | NEW |