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 |