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

Side by Side Diff: net/dns/dns_test_util.h

Issue 8852009: Isolates generic DnsClient from AsyncHostResolver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: and again 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
« no previous file with comments | « net/dns/dns_session.cc ('k') | net/dns/dns_test_util.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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #ifndef NET_DNS_DNS_TEST_UTIL_H_ 5 #ifndef NET_DNS_DNS_TEST_UTIL_H_
6 #define NET_DNS_DNS_TEST_UTIL_H_ 6 #define NET_DNS_DNS_TEST_UTIL_H_
7 #pragma once 7 #pragma once
8 8
9 #include <deque> 9 #include <deque>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "net/base/dns_util.h" 13 #include "net/base/dns_util.h"
14 #include "net/base/host_resolver.h" 14 #include "net/base/host_resolver.h"
15 #include "net/base/ip_endpoint.h" 15 #include "net/base/ip_endpoint.h"
16 #include "net/base/net_util.h" 16 #include "net/base/net_util.h"
17 #include "net/dns/dns_protocol.h"
17 18
18 namespace net { 19 namespace net {
19 20
20 // DNS related classes make use of PRNG for various tasks. This class is
21 // used as a PRNG for unit testing those tasks. It takes a deque of
22 // integers |numbers| which should be returned by calls to GetNext.
23 class TestPrng {
24 public:
25 explicit TestPrng(const std::deque<int>& numbers);
26 ~TestPrng();
27
28 // Pops and returns the next number from |numbers_| deque.
29 int GetNext(int min, int max);
30
31 private:
32 std::deque<int> numbers_;
33
34 DISALLOW_COPY_AND_ASSIGN(TestPrng);
35 };
36
37 // A utility function for tests that given an array of IP literals, 21 // A utility function for tests that given an array of IP literals,
38 // converts it to an IPAddressList. 22 // converts it to an IPAddressList.
39 bool ConvertStringsToIPAddressList( 23 bool ConvertStringsToIPAddressList(
40 const char* const ip_strings[], size_t size, IPAddressList* address_list); 24 const char* const ip_strings[], size_t size, IPAddressList* address_list);
41 25
42 // A utility function for tests that creates an IPEndPoint whose IP is 26 // A utility function for tests that creates an IPEndPoint whose IP is
43 // |ip_string| and whose port is |port| and stores it in |endpoint|. 27 // |ip_string| and whose port is |port| and stores it in |endpoint|.
44 bool CreateDnsAddress(const char* ip_string, uint16 port, IPEndPoint* endpoint); 28 bool CreateDnsAddress(const char* ip_string, uint16 port, IPEndPoint* endpoint);
45 29
46 static const char kDnsIp[] = "192.168.1.1"; 30 static const char kDnsIp[] = "192.168.1.1";
47 static const uint16 kDnsPort = 53; 31 static const uint16 kDnsPort = 53;
48 32
49 //----------------------------------------------------------------------------- 33 //-----------------------------------------------------------------------------
50 // Query/response set for www.google.com, ID is fixed to 0. 34 // Query/response set for www.google.com, ID is fixed to 0.
51 static const char kT0HostName[] = "www.google.com"; 35 static const char kT0HostName[] = "www.google.com";
52 static const uint16 kT0Qtype = kDNS_A; 36 static const uint16 kT0Qtype = dns_protocol::kTypeA;
53 static const char kT0DnsName[] = { 37 static const char kT0DnsName[] = {
54 0x03, 'w', 'w', 'w', 38 0x03, 'w', 'w', 'w',
55 0x06, 'g', 'o', 'o', 'g', 'l', 'e', 39 0x06, 'g', 'o', 'o', 'g', 'l', 'e',
56 0x03, 'c', 'o', 'm', 40 0x03, 'c', 'o', 'm',
57 0x00 41 0x00
58 }; 42 };
59 static const uint8 kT0QueryDatagram[] = { 43 static const uint8 kT0QueryDatagram[] = {
60 // query for www.google.com, type A. 44 // query for www.google.com, type A.
61 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 45 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
62 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x77, 0x77, 46 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x77, 0x77,
(...skipping 22 matching lines...) Expand all
85 0x4a, 0x7d, 0xe2, 0xb2 69 0x4a, 0x7d, 0xe2, 0xb2
86 }; 70 };
87 static const char* const kT0IpAddresses[] = { 71 static const char* const kT0IpAddresses[] = {
88 "74.125.226.179", "74.125.226.180", "74.125.226.176", 72 "74.125.226.179", "74.125.226.180", "74.125.226.176",
89 "74.125.226.177", "74.125.226.178" 73 "74.125.226.177", "74.125.226.178"
90 }; 74 };
91 75
92 //----------------------------------------------------------------------------- 76 //-----------------------------------------------------------------------------
93 // Query/response set for codereview.chromium.org, ID is fixed to 1. 77 // Query/response set for codereview.chromium.org, ID is fixed to 1.
94 static const char kT1HostName[] = "codereview.chromium.org"; 78 static const char kT1HostName[] = "codereview.chromium.org";
95 static const uint16 kT1Qtype = kDNS_A; 79 static const uint16 kT1Qtype = dns_protocol::kTypeA;
96 static const char kT1DnsName[] = { 80 static const char kT1DnsName[] = {
97 0x12, 'c', 'o', 'd', 'e', 'r', 'e', 'v', 'i', 'e', 'w', 81 0x0a, 'c', 'o', 'd', 'e', 'r', 'e', 'v', 'i', 'e', 'w',
98 0x10, 'c', 'h', 'r', 'o', 'm', 'i', 'u', 'm', 82 0x08, 'c', 'h', 'r', 'o', 'm', 'i', 'u', 'm',
99 0x03, 'o', 'r', 'g', 83 0x03, 'o', 'r', 'g',
100 0x00 84 0x00
101 }; 85 };
102 static const uint8 kT1QueryDatagram[] = { 86 static const uint8 kT1QueryDatagram[] = {
103 // query for codereview.chromium.org, type A. 87 // query for codereview.chromium.org, type A.
104 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 88 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
105 0x00, 0x00, 0x00, 0x00, 0x0a, 0x63, 0x6f, 0x64, 89 0x00, 0x00, 0x00, 0x00, 0x0a, 0x63, 0x6f, 0x64,
106 0x65, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x08, 90 0x65, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x08,
107 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 91 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
108 0x03, 0x6f, 0x72, 0x67, 0x00, 0x00, 0x01, 0x00, 92 0x03, 0x6f, 0x72, 0x67, 0x00, 0x00, 0x01, 0x00,
(...skipping 14 matching lines...) Expand all
123 0x35, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 107 0x35, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01,
124 0x0b, 0x00, 0x04, 0x40, 0xe9, 0xa9, 0x79 108 0x0b, 0x00, 0x04, 0x40, 0xe9, 0xa9, 0x79
125 }; 109 };
126 static const char* const kT1IpAddresses[] = { 110 static const char* const kT1IpAddresses[] = {
127 "64.233.169.121" 111 "64.233.169.121"
128 }; 112 };
129 113
130 //----------------------------------------------------------------------------- 114 //-----------------------------------------------------------------------------
131 // Query/response set for www.ccs.neu.edu, ID is fixed to 2. 115 // Query/response set for www.ccs.neu.edu, ID is fixed to 2.
132 static const char kT2HostName[] = "www.ccs.neu.edu"; 116 static const char kT2HostName[] = "www.ccs.neu.edu";
133 static const uint16 kT2Qtype = kDNS_A; 117 static const uint16 kT2Qtype = dns_protocol::kTypeA;
134 static const char kT2DnsName[] = { 118 static const char kT2DnsName[] = {
135 0x03, 'w', 'w', 'w', 119 0x03, 'w', 'w', 'w',
136 0x03, 'c', 'c', 'c', 120 0x03, 'c', 'c', 's',
137 0x03, 'n', 'e', 'u', 121 0x03, 'n', 'e', 'u',
138 0x03, 'e', 'd', 'u', 122 0x03, 'e', 'd', 'u',
139 0x00 123 0x00
140 }; 124 };
141 static const uint8 kT2QueryDatagram[] = { 125 static const uint8 kT2QueryDatagram[] = {
142 // query for www.ccs.neu.edu, type A. 126 // query for www.ccs.neu.edu, type A.
143 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 127 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
144 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x77, 0x77, 128 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x77, 0x77,
145 0x03, 0x63, 0x63, 0x73, 0x03, 0x6e, 0x65, 0x75, 129 0x03, 0x63, 0x63, 0x73, 0x03, 0x6e, 0x65, 0x75,
146 0x03, 0x65, 0x64, 0x75, 0x00, 0x00, 0x01, 0x00, 130 0x03, 0x65, 0x64, 0x75, 0x00, 0x00, 0x01, 0x00,
(...skipping 12 matching lines...) Expand all
159 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x2c, 143 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x2c,
160 0x00, 0x04, 0x81, 0x0a, 0x74, 0x51 144 0x00, 0x04, 0x81, 0x0a, 0x74, 0x51
161 }; 145 };
162 static const char* const kT2IpAddresses[] = { 146 static const char* const kT2IpAddresses[] = {
163 "129.10.116.81" 147 "129.10.116.81"
164 }; 148 };
165 149
166 //----------------------------------------------------------------------------- 150 //-----------------------------------------------------------------------------
167 // Query/response set for www.google.az, ID is fixed to 3. 151 // Query/response set for www.google.az, ID is fixed to 3.
168 static const char kT3HostName[] = "www.google.az"; 152 static const char kT3HostName[] = "www.google.az";
169 static const uint16 kT3Qtype = kDNS_A; 153 static const uint16 kT3Qtype = dns_protocol::kTypeA;
170 static const char kT3DnsName[] = { 154 static const char kT3DnsName[] = {
171 0x03, 'w', 'w', 'w', 155 0x03, 'w', 'w', 'w',
172 0x06, 'g', 'o', 'o', 'g', 'l', 'e', 156 0x06, 'g', 'o', 'o', 'g', 'l', 'e',
173 0x02, 'a', 'z', 157 0x02, 'a', 'z',
174 0x00 158 0x00
175 }; 159 };
176 static const uint8 kT3QueryDatagram[] = { 160 static const uint8 kT3QueryDatagram[] = {
177 // query for www.google.az, type A. 161 // query for www.google.az, type A.
178 0x00, 0x03, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 162 0x00, 0x03, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
179 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x77, 0x77, 163 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x77, 0x77,
(...skipping 26 matching lines...) Expand all
206 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb1 190 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb1
207 }; 191 };
208 static const char* const kT3IpAddresses[] = { 192 static const char* const kT3IpAddresses[] = {
209 "74.125.226.178", "74.125.226.179", "74.125.226.180", 193 "74.125.226.178", "74.125.226.179", "74.125.226.180",
210 "74.125.226.176", "74.125.226.177" 194 "74.125.226.176", "74.125.226.177"
211 }; 195 };
212 196
213 } // namespace net 197 } // namespace net
214 198
215 #endif // NET_DNS_DNS_TEST_UTIL_H_ 199 #endif // NET_DNS_DNS_TEST_UTIL_H_
OLDNEW
« no previous file with comments | « net/dns/dns_session.cc ('k') | net/dns/dns_test_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698