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

Side by Side Diff: components/packed_ct_ev_whitelist/bit_stream_reader_unittest.cc

Issue 2937563002: Remove the EV Certs Whitelist (Closed)
Patch Set: Update comment Created 3 years, 6 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "components/packed_ct_ev_whitelist/bit_stream_reader.h"
6
7 #include <stddef.h>
8 #include <stdint.h>
9
10 #include <algorithm>
11 #include <string>
12
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace packed_ct_ev_whitelist {
16 namespace internal {
17
18 const uint8_t kSomeData[] = {0xd5, 0xe2, 0xaf, 0xe5, 0xbb, 0x10, 0x7c, 0xd1};
19
20 TEST(BitStreamReaderTest, CanReadSingleByte) {
21 BitStreamReader reader(
22 base::StringPiece(reinterpret_cast<const char*>(kSomeData), 1));
23 uint64_t v(0);
24
25 EXPECT_EQ(8u, reader.BitsLeft());
26 EXPECT_TRUE(reader.ReadBits(8, &v));
27 EXPECT_EQ(UINT64_C(0xd5), v);
28
29 EXPECT_FALSE(reader.ReadBits(1, &v));
30 EXPECT_EQ(0u, reader.BitsLeft());
31 }
32
33 TEST(BitStreamReaderTest, CanReadSingleBits) {
34 const uint64_t expected_bits[] = {
35 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0};
36 BitStreamReader reader(
37 base::StringPiece(reinterpret_cast<const char*>(kSomeData), 2));
38 EXPECT_EQ(16u, reader.BitsLeft());
39 uint64_t v(0);
40
41 for (int i = 0; i < 16; ++i) {
42 EXPECT_TRUE(reader.ReadBits(1, &v));
43 EXPECT_EQ(expected_bits[i], v);
44 }
45 EXPECT_EQ(0u, reader.BitsLeft());
46 }
47
48 TEST(BitStreamReaderTest, CanReadBitGroups) {
49 BitStreamReader reader(
50 base::StringPiece(reinterpret_cast<const char*>(kSomeData), 3));
51 EXPECT_EQ(24u, reader.BitsLeft());
52 uint64_t v(0);
53 uint64_t res(0);
54
55 EXPECT_TRUE(reader.ReadBits(5, &v));
56 res |= v << 19;
57 EXPECT_EQ(19u, reader.BitsLeft());
58 EXPECT_TRUE(reader.ReadBits(13, &v));
59 res |= v << 6;
60 EXPECT_EQ(6u, reader.BitsLeft());
61 EXPECT_TRUE(reader.ReadBits(6, &v));
62 res |= v;
63 EXPECT_EQ(UINT64_C(0xd5e2af), res);
64
65 EXPECT_FALSE(reader.ReadBits(1, &v));
66 }
67
68 TEST(BitStreamReaderTest, CanRead64Bit) {
69 BitStreamReader reader(
70 base::StringPiece(reinterpret_cast<const char*>(kSomeData), 8));
71 EXPECT_EQ(64u, reader.BitsLeft());
72 uint64_t v(0);
73
74 EXPECT_TRUE(reader.ReadBits(64, &v));
75 EXPECT_EQ(UINT64_C(0xd5e2afe5bb107cd1), v);
76 }
77
78 TEST(BitStreamReaderTest, CanReadUnaryEncodedNumbers) {
79 internal::BitStreamReader reader(
80 base::StringPiece(reinterpret_cast<const char*>(kSomeData), 3));
81 const uint64_t expected_values[] = {2, 1, 1, 4, 0, 0, 1, 1, 1, 4};
82 uint64_t v(0);
83 for (int i = 0; i < 10; ++i) {
84 EXPECT_TRUE(reader.ReadUnaryEncoding(&v));
85 EXPECT_EQ(expected_values[i], v) << "Values differ at position " << i;
86 }
87 }
88
89 TEST(BitStreamReaderTest, CannotReadFromEmptyStream) {
90 BitStreamReader reader(base::StringPiece(
91 reinterpret_cast<const char*>(kSomeData), static_cast<size_t>(0u)));
92 uint64_t v(0);
93
94 EXPECT_EQ(0u, reader.BitsLeft());
95 EXPECT_FALSE(reader.ReadBits(1, &v));
96 EXPECT_FALSE(reader.ReadUnaryEncoding(&v));
97 }
98
99 } // namespace internal
100 } // namespace packed_ct_ev_whitelist
OLDNEW
« no previous file with comments | « components/packed_ct_ev_whitelist/bit_stream_reader.cc ('k') | components/packed_ct_ev_whitelist/packed_ct_ev_whitelist.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698