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

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

Issue 8762001: Isolates generic DnsClient from AsyncHostResolver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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/bigendian.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.Copy(buf, sizeof(buf)));
mmenke 2011/12/02 00:53:55 I suggest adding linebreaks before each function t
szym 2011/12/05 23:06:28 Done.
23 EXPECT_EQ(0x2, buf[0]);
24 EXPECT_EQ(0x3, buf[1]);
25 EXPECT_TRUE(r.U8(&u8));
26 EXPECT_EQ(0x4, u8);
27 EXPECT_TRUE(r.U16(&u16));
28 EXPECT_EQ(0x0506, u16);
29 EXPECT_TRUE(r.U32(&u32));
30 EXPECT_EQ(0x0708090au, u32);
mmenke 2011/12/02 00:53:55 nit: I suggest you capitalize all your hexadecima
szym 2011/12/05 23:06:28 Done.
31 base::StringPiece expected(r.ptr(), 2);
32 EXPECT_TRUE(r.Piece(&piece, 2));
33 EXPECT_EQ(2, static_cast<int>(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.U32(&u32));
50 EXPECT_FALSE(r.Piece(&piece, 4));
51 EXPECT_TRUE(r.Skip(2));
52 // 1 left
53 EXPECT_FALSE(r.U16(&u16));
54 EXPECT_FALSE(r.Copy(buf, 2));
55 EXPECT_TRUE(r.Skip(1));
56 // 0 left
57 EXPECT_FALSE(r.U8(&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 EXPECT_TRUE(w.Skip(2));
68 EXPECT_TRUE(w.Copy(buf, sizeof(buf)));
69 EXPECT_TRUE(w.U8(0x4));
70 EXPECT_TRUE(w.U16(0x0506));
71 EXPECT_TRUE(w.U32(0x0708090a));
72 EXPECT_EQ(0, memcmp(expected, data, sizeof(expected)));
73 }
74
75 TEST(BigEndianWriterTest, RespectsLength) {
76 char data[4];
77 char buf[2];
78 uint8 u8 = 0;
79 uint16 u16 = 0;
80 uint32 u32 = 0;
81 BigEndianWriter w(data, sizeof(data));
82 // 4 left
83 EXPECT_FALSE(w.Skip(6));
84 EXPECT_TRUE(w.Skip(1));
85 // 3 left
86 EXPECT_FALSE(w.U32(u32));
87 EXPECT_TRUE(w.Skip(2));
88 // 1 left
89 EXPECT_FALSE(w.U16(u16));
90 EXPECT_FALSE(w.Copy(buf, 2));
91 EXPECT_TRUE(w.Skip(1));
92 // 0 left
93 EXPECT_FALSE(w.U8(u8));
94 EXPECT_EQ(0, w.remaining());
95 }
96
97 } // namespace net
98
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698