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

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

Issue 642403002: git cl format the first third of the net/base directory (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nit Created 6 years, 1 month 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
« no previous file with comments | « no previous file | net/base/cache_type.h » ('j') | net/base/data_url_unittest.cc » ('J')
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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "net/base/address_tracker_linux.h" 6 #include "net/base/address_tracker_linux.h"
7 7
8 #include <linux/if.h> 8 #include <linux/if.h>
9 9
10 #include <vector> 10 #include <vector>
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 } 46 }
47 original_get_interface_name_ = tracker_->get_interface_name_; 47 original_get_interface_name_ = tracker_->get_interface_name_;
48 tracker_->get_interface_name_ = TestGetInterfaceName; 48 tracker_->get_interface_name_ = TestGetInterfaceName;
49 } 49 }
50 50
51 bool HandleAddressMessage(const Buffer& buf) { 51 bool HandleAddressMessage(const Buffer& buf) {
52 Buffer writable_buf = buf; 52 Buffer writable_buf = buf;
53 bool address_changed = false; 53 bool address_changed = false;
54 bool link_changed = false; 54 bool link_changed = false;
55 bool tunnel_changed = false; 55 bool tunnel_changed = false;
56 tracker_->HandleMessage(&writable_buf[0], buf.size(), 56 tracker_->HandleMessage(&writable_buf[0], buf.size(), &address_changed,
57 &address_changed, &link_changed, &tunnel_changed); 57 &link_changed, &tunnel_changed);
58 EXPECT_FALSE(link_changed); 58 EXPECT_FALSE(link_changed);
59 return address_changed; 59 return address_changed;
60 } 60 }
61 61
62 bool HandleLinkMessage(const Buffer& buf) { 62 bool HandleLinkMessage(const Buffer& buf) {
63 Buffer writable_buf = buf; 63 Buffer writable_buf = buf;
64 bool address_changed = false; 64 bool address_changed = false;
65 bool link_changed = false; 65 bool link_changed = false;
66 bool tunnel_changed = false; 66 bool tunnel_changed = false;
67 tracker_->HandleMessage(&writable_buf[0], buf.size(), 67 tracker_->HandleMessage(&writable_buf[0], buf.size(), &address_changed,
68 &address_changed, &link_changed, &tunnel_changed); 68 &link_changed, &tunnel_changed);
69 EXPECT_FALSE(address_changed); 69 EXPECT_FALSE(address_changed);
70 return link_changed; 70 return link_changed;
71 } 71 }
72 72
73 bool HandleTunnelMessage(const Buffer& buf) { 73 bool HandleTunnelMessage(const Buffer& buf) {
74 Buffer writable_buf = buf; 74 Buffer writable_buf = buf;
75 bool address_changed = false; 75 bool address_changed = false;
76 bool link_changed = false; 76 bool link_changed = false;
77 bool tunnel_changed = false; 77 bool tunnel_changed = false;
78 tracker_->HandleMessage(&writable_buf[0], buf.size(), 78 tracker_->HandleMessage(&writable_buf[0], buf.size(), &address_changed,
79 &address_changed, &link_changed, &tunnel_changed); 79 &link_changed, &tunnel_changed);
80 EXPECT_FALSE(address_changed); 80 EXPECT_FALSE(address_changed);
81 return tunnel_changed; 81 return tunnel_changed;
82 } 82 }
83 83
84 AddressTrackerLinux::AddressMap GetAddressMap() { 84 AddressTrackerLinux::AddressMap GetAddressMap() {
85 return tracker_->GetAddressMap(); 85 return tracker_->GetAddressMap();
86 } 86 }
87 87
88 const base::hash_set<int> GetOnlineLinks() const { 88 const base::hash_set<int> GetOnlineLinks() const {
89 return tracker_->GetOnlineLinks(); 89 return tracker_->GetOnlineLinks();
90 } 90 }
91 91
92 scoped_ptr<AddressTrackerLinux> tracker_; 92 scoped_ptr<AddressTrackerLinux> tracker_;
93 AddressTrackerLinux::GetInterfaceNameFunction original_get_interface_name_; 93 AddressTrackerLinux::GetInterfaceNameFunction original_get_interface_name_;
94 }; 94 };
95 95
96 namespace { 96 namespace {
97 97
98 class NetlinkMessage { 98 class NetlinkMessage {
99 public: 99 public:
100 explicit NetlinkMessage(uint16 type) : buffer_(NLMSG_HDRLEN) { 100 explicit NetlinkMessage(uint16 type) : buffer_(NLMSG_HDRLEN) {
101 header()->nlmsg_type = type; 101 header()->nlmsg_type = type;
102 Align(); 102 Align();
103 } 103 }
104 104
105 void AddPayload(const void* data, size_t length) { 105 void AddPayload(const void* data, size_t length) {
106 CHECK_EQ(static_cast<size_t>(NLMSG_HDRLEN), 106 CHECK_EQ(static_cast<size_t>(NLMSG_HDRLEN), buffer_.size())
107 buffer_.size()) << "Payload must be added first"; 107 << "Payload must be added first";
108 Append(data, length); 108 Append(data, length);
109 Align(); 109 Align();
110 } 110 }
111 111
112 void AddAttribute(uint16 type, const void* data, size_t length) { 112 void AddAttribute(uint16 type, const void* data, size_t length) {
113 struct nlattr attr; 113 struct nlattr attr;
114 attr.nla_len = NLA_HDRLEN + length; 114 attr.nla_len = NLA_HDRLEN + length;
115 attr.nla_type = type; 115 attr.nla_type = type;
116 Append(&attr, sizeof(attr)); 116 Append(&attr, sizeof(attr));
117 Align(); 117 Align();
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 void MakeLinkMessage(uint16 type, uint32 flags, uint32 index, Buffer* output) { 183 void MakeLinkMessage(uint16 type, uint32 flags, uint32 index, Buffer* output) {
184 NetlinkMessage nlmsg(type); 184 NetlinkMessage nlmsg(type);
185 struct ifinfomsg msg = {}; 185 struct ifinfomsg msg = {};
186 msg.ifi_index = index; 186 msg.ifi_index = index;
187 msg.ifi_flags = flags; 187 msg.ifi_flags = flags;
188 nlmsg.AddPayload(&msg, sizeof(msg)); 188 nlmsg.AddPayload(&msg, sizeof(msg));
189 output->clear(); 189 output->clear();
190 nlmsg.AppendTo(output); 190 nlmsg.AppendTo(output);
191 } 191 }
192 192
193 const unsigned char kAddress0[] = { 127, 0, 0, 1 }; 193 const unsigned char kAddress0[] = {127, 0, 0, 1};
194 const unsigned char kAddress1[] = { 10, 0, 0, 1 }; 194 const unsigned char kAddress1[] = {10, 0, 0, 1};
195 const unsigned char kAddress2[] = { 192, 168, 0, 1 }; 195 const unsigned char kAddress2[] = {192, 168, 0, 1};
196 const unsigned char kAddress3[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196 const unsigned char kAddress3[] =
197 0, 0, 0, 1 }; 197 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
198 198
199 TEST_F(AddressTrackerLinuxTest, NewAddress) { 199 TEST_F(AddressTrackerLinuxTest, NewAddress) {
200 InitializeAddressTracker(true); 200 InitializeAddressTracker(true);
201 201
202 const IPAddressNumber kEmpty; 202 const IPAddressNumber kEmpty;
203 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0)); 203 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0));
204 const IPAddressNumber kAddr1(kAddress1, kAddress1 + arraysize(kAddress1)); 204 const IPAddressNumber kAddr1(kAddress1, kAddress1 + arraysize(kAddress1));
205 const IPAddressNumber kAddr2(kAddress2, kAddress2 + arraysize(kAddress2)); 205 const IPAddressNumber kAddr2(kAddress2, kAddress2 + arraysize(kAddress2));
206 const IPAddressNumber kAddr3(kAddress3, kAddress3 + arraysize(kAddress3)); 206 const IPAddressNumber kAddr3(kAddress3, kAddress3 + arraysize(kAddress3));
207 207
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 EXPECT_EQ(1u, GetAddressMap().size()); 399 EXPECT_EQ(1u, GetAddressMap().size());
400 } 400 }
401 401
402 TEST_F(AddressTrackerLinuxTest, AddInterface) { 402 TEST_F(AddressTrackerLinuxTest, AddInterface) {
403 InitializeAddressTracker(true); 403 InitializeAddressTracker(true);
404 404
405 Buffer buffer; 405 Buffer buffer;
406 406
407 // Ignores loopback. 407 // Ignores loopback.
408 MakeLinkMessage(RTM_NEWLINK, 408 MakeLinkMessage(RTM_NEWLINK,
409 IFF_LOOPBACK | IFF_UP | IFF_LOWER_UP | IFF_RUNNING, 409 IFF_LOOPBACK | IFF_UP | IFF_LOWER_UP | IFF_RUNNING, 0,
410 0, &buffer); 410 &buffer);
411 EXPECT_FALSE(HandleLinkMessage(buffer)); 411 EXPECT_FALSE(HandleLinkMessage(buffer));
412 EXPECT_TRUE(GetOnlineLinks().empty()); 412 EXPECT_TRUE(GetOnlineLinks().empty());
413 413
414 // Ignores not IFF_LOWER_UP. 414 // Ignores not IFF_LOWER_UP.
415 MakeLinkMessage(RTM_NEWLINK, IFF_UP | IFF_RUNNING, 0, &buffer); 415 MakeLinkMessage(RTM_NEWLINK, IFF_UP | IFF_RUNNING, 0, &buffer);
416 EXPECT_FALSE(HandleLinkMessage(buffer)); 416 EXPECT_FALSE(HandleLinkMessage(buffer));
417 EXPECT_TRUE(GetOnlineLinks().empty()); 417 EXPECT_TRUE(GetOnlineLinks().empty());
418 418
419 // Ignores deletion. 419 // Ignores deletion.
420 MakeLinkMessage(RTM_DELLINK, IFF_UP | IFF_LOWER_UP | IFF_RUNNING, 0, &buffer); 420 MakeLinkMessage(RTM_DELLINK, IFF_UP | IFF_LOWER_UP | IFF_RUNNING, 0, &buffer);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 EXPECT_TRUE(GetOnlineLinks().empty()); 473 EXPECT_TRUE(GetOnlineLinks().empty());
474 } 474 }
475 475
476 TEST_F(AddressTrackerLinuxTest, TunnelInterface) { 476 TEST_F(AddressTrackerLinuxTest, TunnelInterface) {
477 InitializeAddressTracker(true); 477 InitializeAddressTracker(true);
478 478
479 Buffer buffer; 479 Buffer buffer;
480 480
481 // Ignores without "tun" prefixed name. 481 // Ignores without "tun" prefixed name.
482 MakeLinkMessage(RTM_NEWLINK, 482 MakeLinkMessage(RTM_NEWLINK,
483 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 483 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 0,
484 0, &buffer); 484 &buffer);
485 EXPECT_FALSE(HandleTunnelMessage(buffer)); 485 EXPECT_FALSE(HandleTunnelMessage(buffer));
486 486
487 // Verify success. 487 // Verify success.
488 MakeLinkMessage(RTM_NEWLINK, 488 MakeLinkMessage(RTM_NEWLINK,
489 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 489 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT,
490 kTestInterfaceTun, &buffer); 490 kTestInterfaceTun, &buffer);
491 EXPECT_TRUE(HandleTunnelMessage(buffer)); 491 EXPECT_TRUE(HandleTunnelMessage(buffer));
492 492
493 // Ignores redundant enables. 493 // Ignores redundant enables.
494 MakeLinkMessage(RTM_NEWLINK, 494 MakeLinkMessage(RTM_NEWLINK,
495 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 495 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT,
496 kTestInterfaceTun, &buffer); 496 kTestInterfaceTun, &buffer);
497 EXPECT_FALSE(HandleTunnelMessage(buffer)); 497 EXPECT_FALSE(HandleTunnelMessage(buffer));
498 498
499 // Ignores deleting without "tun" prefixed name. 499 // Ignores deleting without "tun" prefixed name.
500 MakeLinkMessage(RTM_DELLINK, 500 MakeLinkMessage(RTM_DELLINK,
501 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 501 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 0,
502 0, &buffer); 502 &buffer);
503 EXPECT_FALSE(HandleTunnelMessage(buffer)); 503 EXPECT_FALSE(HandleTunnelMessage(buffer));
504 504
505 // Verify successful deletion 505 // Verify successful deletion
506 MakeLinkMessage(RTM_DELLINK, 506 MakeLinkMessage(RTM_DELLINK,
507 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 507 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT,
508 kTestInterfaceTun, &buffer); 508 kTestInterfaceTun, &buffer);
509 EXPECT_TRUE(HandleTunnelMessage(buffer)); 509 EXPECT_TRUE(HandleTunnelMessage(buffer));
510 510
511 // Ignores redundant deletions. 511 // Ignores redundant deletions.
512 MakeLinkMessage(RTM_DELLINK, 512 MakeLinkMessage(RTM_DELLINK,
(...skipping 11 matching lines...) Expand all
524 EXPECT_NE((const char*)NULL, original_get_interface_name_(i)); 524 EXPECT_NE((const char*)NULL, original_get_interface_name_(i));
525 } 525 }
526 526
527 TEST_F(AddressTrackerLinuxTest, NonTrackingMode) { 527 TEST_F(AddressTrackerLinuxTest, NonTrackingMode) {
528 InitializeAddressTracker(false); 528 InitializeAddressTracker(false);
529 529
530 const IPAddressNumber kEmpty; 530 const IPAddressNumber kEmpty;
531 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0)); 531 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0));
532 532
533 Buffer buffer; 533 Buffer buffer;
534 MakeAddrMessage( 534 MakeAddrMessage(RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kEmpty,
535 RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kEmpty, &buffer); 535 &buffer);
536 EXPECT_TRUE(HandleAddressMessage(buffer)); 536 EXPECT_TRUE(HandleAddressMessage(buffer));
537 AddressTrackerLinux::AddressMap map = GetAddressMap(); 537 AddressTrackerLinux::AddressMap map = GetAddressMap();
538 EXPECT_EQ(1u, map.size()); 538 EXPECT_EQ(1u, map.size());
539 EXPECT_EQ(1u, map.count(kAddr0)); 539 EXPECT_EQ(1u, map.count(kAddr0));
540 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags); 540 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags);
541 541
542 MakeLinkMessage(RTM_NEWLINK, IFF_UP | IFF_LOWER_UP | IFF_RUNNING, 0, &buffer); 542 MakeLinkMessage(RTM_NEWLINK, IFF_UP | IFF_LOWER_UP | IFF_RUNNING, 0, &buffer);
543 EXPECT_TRUE(HandleLinkMessage(buffer)); 543 EXPECT_TRUE(HandleLinkMessage(buffer));
544 EXPECT_EQ(1u, GetOnlineLinks().count(0)); 544 EXPECT_EQ(1u, GetOnlineLinks().count(0));
545 EXPECT_EQ(1u, GetOnlineLinks().size()); 545 EXPECT_EQ(1u, GetOnlineLinks().size());
546 } 546 }
547 547
548 TEST_F(AddressTrackerLinuxTest, NonTrackingModeInit) { 548 TEST_F(AddressTrackerLinuxTest, NonTrackingModeInit) {
549 AddressTrackerLinux tracker; 549 AddressTrackerLinux tracker;
550 tracker.Init(); 550 tracker.Init();
551 } 551 }
552 552
553 } // namespace 553 } // namespace
554 554
555 } // namespace internal 555 } // namespace internal
556 } // namespace net 556 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | net/base/cache_type.h » ('j') | net/base/data_url_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698