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

Side by Side Diff: net/base/big_endian_unittest.cc

Issue 8762001: Isolates generic DnsClient from AsyncHostResolver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: applied review Created 9 years 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
OLDNEW
(Empty)
1 // Copyright (c) 2009 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 "net/base/big_endian.h"
6 #include "testing/gtest/include/gtest/gtest.h"
7
8 namespace net {
9
10 TEST(BigEndianReaderTest, ReadsValues) {
11 char data[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC };
12 char buf[2];
13 uint8 u8;
14 uint16 u16;
15 uint32 u32;
16 base::StringPiece piece;
17 BigEndianReader r(data, sizeof(data));
18
19 EXPECT_TRUE(r.Skip(2));
20 EXPECT_EQ(data + 2, r.ptr());
21 EXPECT_EQ(r.remaining(), static_cast<int>(sizeof(data)) - 2);
22 EXPECT_TRUE(r.ReadBytes(buf, sizeof(buf)));
23 EXPECT_EQ(0x2, buf[0]);
24 EXPECT_EQ(0x3, buf[1]);
25 EXPECT_TRUE(r.ReadU8(&u8));
26 EXPECT_EQ(0x4, u8);
27 EXPECT_TRUE(r.ReadU16(&u16));
28 EXPECT_EQ(0x0506, u16);
29 EXPECT_TRUE(r.ReadU32(&u32));
30 EXPECT_EQ(0x0708090Au, u32);
31 base::StringPiece expected(r.ptr(), 2);
32 EXPECT_TRUE(r.ReadPiece(&piece, 2));
33 EXPECT_EQ(2u, piece.size());
34 EXPECT_EQ(expected.data(), piece.data());
35 }
36
37 TEST(BigEndianReaderTest, RespectsLength) {
38 char data[4];
39 char buf[2];
40 uint8 u8;
41 uint16 u16;
42 uint32 u32;
43 base::StringPiece piece;
44 BigEndianReader r(data, sizeof(data));
45 // 4 left
46 EXPECT_FALSE(r.Skip(6));
47 EXPECT_TRUE(r.Skip(1));
48 // 3 left
49 EXPECT_FALSE(r.ReadU32(&u32));
50 EXPECT_FALSE(r.ReadPiece(&piece, 4));
51 EXPECT_TRUE(r.Skip(2));
52 // 1 left
53 EXPECT_FALSE(r.ReadU16(&u16));
54 EXPECT_FALSE(r.ReadBytes(buf, 2));
55 EXPECT_TRUE(r.Skip(1));
56 // 0 left
57 EXPECT_FALSE(r.ReadU8(&u8));
58 EXPECT_EQ(0, r.remaining());
59 }
60
61 TEST(BigEndianWriterTest, WritesValues) {
62 char expected[] = { 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 0xA };
63 char data[sizeof(expected)];
64 char buf[] = { 0x2, 0x3 };
65 memset(data, 0, sizeof(data));
66 BigEndianWriter w(data, sizeof(data));
67
68 EXPECT_TRUE(w.Skip(2));
69 EXPECT_TRUE(w.WriteBytes(buf, sizeof(buf)));
70 EXPECT_TRUE(w.WriteU8(0x4));
71 EXPECT_TRUE(w.WriteU16(0x0506));
72 EXPECT_TRUE(w.WriteU32(0x0708090A));
73 EXPECT_EQ(0, memcmp(expected, data, sizeof(expected)));
74 }
75
76 TEST(BigEndianWriterTest, RespectsLength) {
77 char data[4];
78 char buf[2];
79 uint8 u8 = 0;
80 uint16 u16 = 0;
81 uint32 u32 = 0;
82 BigEndianWriter w(data, sizeof(data));
83 // 4 left
84 EXPECT_FALSE(w.Skip(6));
85 EXPECT_TRUE(w.Skip(1));
86 // 3 left
87 EXPECT_FALSE(w.WriteU32(u32));
88 EXPECT_TRUE(w.Skip(2));
89 // 1 left
90 EXPECT_FALSE(w.WriteU16(u16));
91 EXPECT_FALSE(w.WriteBytes(buf, 2));
92 EXPECT_TRUE(w.Skip(1));
93 // 0 left
94 EXPECT_FALSE(w.WriteU8(u8));
95 EXPECT_EQ(0, w.remaining());
96 }
97
98 } // namespace net
99
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698