Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(405)

Side by Side Diff: base/md5_unittest.cc

Issue 6896006: added md5_unittest (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« base/base.gyp ('K') | « base/base.gyp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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?
OLDNEW
« base/base.gyp ('K') | « base/base.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698