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

Side by Side Diff: components/rappor/byte_vector_utils_unittest.cc

Issue 1112003002: Use 64 bit shift when convert uint64_t to ByteVector (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Restore the cast Created 5 years, 7 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
« no previous file with comments | « components/rappor/byte_vector_utils.cc ('k') | components/rappor/sample.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/rappor/byte_vector_utils.h" 5 #include "components/rappor/byte_vector_utils.h"
6 6
7 #include "base/rand_util.h" 7 #include "base/rand_util.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace rappor { 11 namespace rappor {
12 12
13 namespace { 13 namespace {
14 14
15 class SecondRequest : public HmacByteVectorGenerator { 15 class SecondRequest : public HmacByteVectorGenerator {
16 public: 16 public:
17 SecondRequest(const HmacByteVectorGenerator& first_request) 17 SecondRequest(const HmacByteVectorGenerator& first_request)
18 : HmacByteVectorGenerator(first_request) {} 18 : HmacByteVectorGenerator(first_request) {}
19 }; 19 };
20 20
21 std::string HexToString(const char* hex) { 21 std::string HexToString(const char* hex) {
22 ByteVector bv; 22 ByteVector bv;
23 base::HexStringToBytes(hex, &bv); 23 base::HexStringToBytes(hex, &bv);
24 return std::string(bv.begin(), bv.end()); 24 return std::string(bv.begin(), bv.end());
25 } 25 }
26 26
27 } // namespace 27 } // namespace
28 28
29 TEST(ByteVectorTest, Uint64ToByteVectorSmall) {
30 ByteVector bytes(1);
31 Uint64ToByteVector(0x10, 1, &bytes);
32 EXPECT_EQ(1u, bytes.size());
33 EXPECT_EQ(0x10, bytes[0]);
34 }
35
36 TEST(ByteVectorTest, Uint64ToByteVectorLarge) {
37 ByteVector bytes(8);
38 Uint64ToByteVector(0xfedcba9876543210, 8, &bytes);
39 EXPECT_EQ(8u, bytes.size());
40 EXPECT_EQ(0x10, bytes[0]);
41 EXPECT_EQ(0xfe, bytes[7]);
42 }
43
29 TEST(ByteVectorTest, ByteVectorAnd) { 44 TEST(ByteVectorTest, ByteVectorAnd) {
30 ByteVector lhs(2); 45 ByteVector lhs(2);
31 lhs[1] = 0x12; 46 lhs[1] = 0x12;
32 ByteVector rhs(2); 47 ByteVector rhs(2);
33 rhs[1] = 0x03; 48 rhs[1] = 0x03;
34 49
35 EXPECT_EQ(0x02, (*ByteVectorAnd(lhs, &rhs))[1]); 50 EXPECT_EQ(0x02, (*ByteVectorAnd(lhs, &rhs))[1]);
36 } 51 }
37 52
38 TEST(ByteVectorTest, ByteVectorOr) { 53 TEST(ByteVectorTest, ByteVectorOr) {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 HmacByteVectorGenerator generator(50u, 143 HmacByteVectorGenerator generator(50u,
129 HmacByteVectorGenerator::GenerateEntropyInput(), ""); 144 HmacByteVectorGenerator::GenerateEntropyInput(), "");
130 ByteVector random = generator.GetWeightedRandomByteVector(PROBABILITY_75); 145 ByteVector random = generator.GetWeightedRandomByteVector(PROBABILITY_75);
131 int bit_count = CountBits(random); 146 int bit_count = CountBits(random);
132 // Check bounds on bit counts that are true with 99.999% probability. 147 // Check bounds on bit counts that are true with 99.999% probability.
133 EXPECT_GT(bit_count, 259); // Binomial(400, .75) CDF(259) ~= 0.000003 148 EXPECT_GT(bit_count, 259); // Binomial(400, .75) CDF(259) ~= 0.000003
134 EXPECT_LE(bit_count, 337); // Binomial(400, .75) CDF(337) ~= 0.999997 149 EXPECT_LE(bit_count, 337); // Binomial(400, .75) CDF(337) ~= 0.999997
135 } 150 }
136 151
137 } // namespace rappor 152 } // namespace rappor
OLDNEW
« no previous file with comments | « components/rappor/byte_vector_utils.cc ('k') | components/rappor/sample.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698