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

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

Issue 9369045: [net] HostResolverImpl + DnsTransaction + DnsConfigService = Asynchronous DNS ready for experiments. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Denitted. Created 8 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « net/base/address_list.cc ('k') | net/base/host_resolver.h » ('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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "net/base/address_list.h" 5 #include "net/base/address_list.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "net/base/host_resolver_proc.h" 9 #include "net/base/host_resolver_proc.h"
10 #include "net/base/net_util.h" 10 #include "net/base/net_util.h"
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 &expected_list); 209 &expected_list);
210 if (tests[i].is_ipv6 && rv != 0) { 210 if (tests[i].is_ipv6 && rv != 0) {
211 LOG(WARNING) << "Unable to resolve ip literal '" << tests[i].ip_address 211 LOG(WARNING) << "Unable to resolve ip literal '" << tests[i].ip_address
212 << "' test skipped."; 212 << "' test skipped.";
213 continue; 213 continue;
214 } 214 }
215 ASSERT_EQ(0, rv); 215 ASSERT_EQ(0, rv);
216 const struct addrinfo* good_ai = expected_list.head(); 216 const struct addrinfo* good_ai = expected_list.head();
217 217
218 IPAddressNumber ip_number; 218 IPAddressNumber ip_number;
219 ParseIPLiteralToNumber(tests[i].ip_address, &ip_number); 219 ASSERT_TRUE(ParseIPLiteralToNumber(tests[i].ip_address, &ip_number));
220 AddressList test_list = AddressList::CreateFromIPAddressWithCname( 220 AddressList test_list = AddressList::CreateFromIPAddressWithCname(
221 ip_number, 80, true); 221 ip_number, 80, true);
222 const struct addrinfo* test_ai = test_list.head(); 222 const struct addrinfo* test_ai = test_list.head();
223 223
224 EXPECT_EQ(good_ai->ai_family, test_ai->ai_family); 224 EXPECT_EQ(good_ai->ai_family, test_ai->ai_family);
225 EXPECT_EQ(good_ai->ai_socktype, test_ai->ai_socktype); 225 EXPECT_EQ(good_ai->ai_socktype, test_ai->ai_socktype);
226 EXPECT_EQ(good_ai->ai_addrlen, test_ai->ai_addrlen); 226 EXPECT_EQ(good_ai->ai_addrlen, test_ai->ai_addrlen);
227 size_t sockaddr_size = 227 size_t sockaddr_size =
228 good_ai->ai_socktype == AF_INET ? sizeof(struct sockaddr_in) : 228 good_ai->ai_socktype == AF_INET ? sizeof(struct sockaddr_in) :
229 good_ai->ai_socktype == AF_INET6 ? sizeof(struct sockaddr_in6) : 0; 229 good_ai->ai_socktype == AF_INET6 ? sizeof(struct sockaddr_in6) : 0;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 sizeof(struct in6_addr), 298 sizeof(struct in6_addr),
299 }, 299 },
300 { "192.168.1.1", 300 { "192.168.1.1",
301 "\xc0\xa8\x01\x01", 301 "\xc0\xa8\x01\x01",
302 AF_INET, 302 AF_INET,
303 sizeof(struct sockaddr_in), 303 sizeof(struct sockaddr_in),
304 offsetof(struct sockaddr_in, sin_addr), 304 offsetof(struct sockaddr_in, sin_addr),
305 sizeof(struct in_addr), 305 sizeof(struct in_addr),
306 }, 306 },
307 }; 307 };
308 const uint16 kPort = 80; 308 const std::string kCanonicalName = "canonical.example.com";
309 309
310 // Construct a list of ip addresses. 310 // Construct a list of ip addresses.
311 IPAddressList ip_list; 311 IPAddressList ip_list;
312 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 312 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
313 IPAddressNumber ip_number; 313 IPAddressNumber ip_number;
314 ParseIPLiteralToNumber(tests[i].ip_address, &ip_number); 314 ASSERT_TRUE(ParseIPLiteralToNumber(tests[i].ip_address, &ip_number));
315 ip_list.push_back(ip_number); 315 ip_list.push_back(ip_number);
316 } 316 }
317 317
318 AddressList test_list = AddressList::CreateFromIPAddressList(ip_list, kPort); 318 AddressList test_list = AddressList::CreateFromIPAddressList(ip_list,
319 EXPECT_EQ(kPort, test_list.GetPort()); 319 kCanonicalName);
320 std::string canonical_name;
321 EXPECT_TRUE(test_list.GetCanonicalName(&canonical_name));
322 EXPECT_EQ(kCanonicalName, canonical_name);
320 323
321 // Make sure that CreateFromIPAddressList has created an addrinfo 324 // Make sure that CreateFromIPAddressList has created an addrinfo
322 // chain of exactly the same length as the |tests| with correct content. 325 // chain of exactly the same length as the |tests| with correct content.
323 const struct addrinfo* next_ai = test_list.head(); 326 const struct addrinfo* next_ai = test_list.head();
324 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 327 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
325 ASSERT_TRUE(next_ai != NULL); 328 ASSERT_TRUE(next_ai != NULL);
326 EXPECT_EQ(tests[i].ai_family, next_ai->ai_family); 329 EXPECT_EQ(tests[i].ai_family, next_ai->ai_family);
327 EXPECT_EQ(tests[i].ai_addrlen, static_cast<size_t>(next_ai->ai_addrlen)); 330 EXPECT_EQ(tests[i].ai_addrlen, static_cast<size_t>(next_ai->ai_addrlen));
328 331
329 char* ai_addr = reinterpret_cast<char*>(next_ai->ai_addr); 332 char* ai_addr = reinterpret_cast<char*>(next_ai->ai_addr);
330 int rv = memcmp(tests[i].in_addr, 333 int rv = memcmp(tests[i].in_addr,
331 ai_addr + tests[i].in_addr_offset, 334 ai_addr + tests[i].in_addr_offset,
332 tests[i].in_addr_size); 335 tests[i].in_addr_size);
333 EXPECT_EQ(0, rv); 336 EXPECT_EQ(0, rv);
334 next_ai = next_ai->ai_next; 337 next_ai = next_ai->ai_next;
335 } 338 }
336 EXPECT_EQ(NULL, next_ai); 339 EXPECT_EQ(NULL, next_ai);
337 } 340 }
338 341
339 } // namespace 342 } // namespace
340 } // namespace net 343 } // namespace net
OLDNEW
« no previous file with comments | « net/base/address_list.cc ('k') | net/base/host_resolver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698