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

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

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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
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_tracker_linux.h" 5 #include "net/base/address_tracker_linux.h"
6 6
7 #include <linux/if.h> 7 #include <linux/if.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 28 matching lines...) Expand all
39 base::Bind(&base::DoNothing)), 39 base::Bind(&base::DoNothing)),
40 original_get_interface_name_(tracker_.get_interface_name_) { 40 original_get_interface_name_(tracker_.get_interface_name_) {
41 tracker_.get_interface_name_ = TestGetInterfaceName; 41 tracker_.get_interface_name_ = TestGetInterfaceName;
42 } 42 }
43 43
44 bool HandleAddressMessage(const Buffer& buf) { 44 bool HandleAddressMessage(const Buffer& buf) {
45 Buffer writable_buf = buf; 45 Buffer writable_buf = buf;
46 bool address_changed = false; 46 bool address_changed = false;
47 bool link_changed = false; 47 bool link_changed = false;
48 bool tunnel_changed = false; 48 bool tunnel_changed = false;
49 tracker_.HandleMessage(&writable_buf[0], buf.size(), 49 tracker_.HandleMessage(&writable_buf[0],
50 &address_changed, &link_changed, &tunnel_changed); 50 buf.size(),
51 &address_changed,
52 &link_changed,
53 &tunnel_changed);
51 EXPECT_FALSE(link_changed); 54 EXPECT_FALSE(link_changed);
52 return address_changed; 55 return address_changed;
53 } 56 }
54 57
55 bool HandleLinkMessage(const Buffer& buf) { 58 bool HandleLinkMessage(const Buffer& buf) {
56 Buffer writable_buf = buf; 59 Buffer writable_buf = buf;
57 bool address_changed = false; 60 bool address_changed = false;
58 bool link_changed = false; 61 bool link_changed = false;
59 bool tunnel_changed = false; 62 bool tunnel_changed = false;
60 tracker_.HandleMessage(&writable_buf[0], buf.size(), 63 tracker_.HandleMessage(&writable_buf[0],
61 &address_changed, &link_changed, &tunnel_changed); 64 buf.size(),
65 &address_changed,
66 &link_changed,
67 &tunnel_changed);
62 EXPECT_FALSE(address_changed); 68 EXPECT_FALSE(address_changed);
63 return link_changed; 69 return link_changed;
64 } 70 }
65 71
66 bool HandleTunnelMessage(const Buffer& buf) { 72 bool HandleTunnelMessage(const Buffer& buf) {
67 Buffer writable_buf = buf; 73 Buffer writable_buf = buf;
68 bool address_changed = false; 74 bool address_changed = false;
69 bool link_changed = false; 75 bool link_changed = false;
70 bool tunnel_changed = false; 76 bool tunnel_changed = false;
71 tracker_.HandleMessage(&writable_buf[0], buf.size(), 77 tracker_.HandleMessage(&writable_buf[0],
72 &address_changed, &link_changed, &tunnel_changed); 78 buf.size(),
79 &address_changed,
80 &link_changed,
81 &tunnel_changed);
73 EXPECT_FALSE(address_changed); 82 EXPECT_FALSE(address_changed);
74 return tunnel_changed; 83 return tunnel_changed;
75 } 84 }
76 85
77 AddressTrackerLinux::AddressMap GetAddressMap() { 86 AddressTrackerLinux::AddressMap GetAddressMap() {
78 return tracker_.GetAddressMap(); 87 return tracker_.GetAddressMap();
79 } 88 }
80 89
81 const base::hash_set<int>* GetOnlineLinks() const { 90 const base::hash_set<int>* GetOnlineLinks() const {
82 return &tracker_.online_links_; 91 return &tracker_.online_links_;
83 } 92 }
84 93
85 AddressTrackerLinux tracker_; 94 AddressTrackerLinux tracker_;
86 AddressTrackerLinux::GetInterfaceNameFunction original_get_interface_name_; 95 AddressTrackerLinux::GetInterfaceNameFunction original_get_interface_name_;
87 }; 96 };
88 97
89 namespace { 98 namespace {
90 99
91 class NetlinkMessage { 100 class NetlinkMessage {
92 public: 101 public:
93 explicit NetlinkMessage(uint16 type) : buffer_(NLMSG_HDRLEN) { 102 explicit NetlinkMessage(uint16 type) : buffer_(NLMSG_HDRLEN) {
94 header()->nlmsg_type = type; 103 header()->nlmsg_type = type;
95 Align(); 104 Align();
96 } 105 }
97 106
98 void AddPayload(const void* data, size_t length) { 107 void AddPayload(const void* data, size_t length) {
99 CHECK_EQ(static_cast<size_t>(NLMSG_HDRLEN), 108 CHECK_EQ(static_cast<size_t>(NLMSG_HDRLEN), buffer_.size())
100 buffer_.size()) << "Payload must be added first"; 109 << "Payload must be added first";
101 Append(data, length); 110 Append(data, length);
102 Align(); 111 Align();
103 } 112 }
104 113
105 void AddAttribute(uint16 type, const void* data, size_t length) { 114 void AddAttribute(uint16 type, const void* data, size_t length) {
106 struct nlattr attr; 115 struct nlattr attr;
107 attr.nla_len = NLA_HDRLEN + length; 116 attr.nla_len = NLA_HDRLEN + length;
108 attr.nla_type = type; 117 attr.nla_type = type;
109 Append(&attr, sizeof(attr)); 118 Append(&attr, sizeof(attr));
110 Align(); 119 Align();
111 Append(data, length); 120 Append(data, length);
112 Align(); 121 Align();
113 } 122 }
114 123
115 void AppendTo(Buffer* output) const { 124 void AppendTo(Buffer* output) const {
116 CHECK_EQ(NLMSG_ALIGN(output->size()), output->size()); 125 CHECK_EQ(NLMSG_ALIGN(output->size()), output->size());
117 output->reserve(output->size() + NLMSG_LENGTH(buffer_.size())); 126 output->reserve(output->size() + NLMSG_LENGTH(buffer_.size()));
118 output->insert(output->end(), buffer_.begin(), buffer_.end()); 127 output->insert(output->end(), buffer_.begin(), buffer_.end());
119 } 128 }
120 129
121 private: 130 private:
122 void Append(const void* data, size_t length) { 131 void Append(const void* data, size_t length) {
123 const char* chardata = reinterpret_cast<const char*>(data); 132 const char* chardata = reinterpret_cast<const char*>(data);
124 buffer_.insert(buffer_.end(), chardata, chardata + length); 133 buffer_.insert(buffer_.end(), chardata, chardata + length);
125 } 134 }
126 135
127 void Align() { 136 void Align() {
128 header()->nlmsg_len = buffer_.size(); 137 header()->nlmsg_len = buffer_.size();
129 buffer_.insert(buffer_.end(), NLMSG_ALIGN(buffer_.size()) - buffer_.size(), 138 buffer_.insert(
130 0); 139 buffer_.end(), NLMSG_ALIGN(buffer_.size()) - buffer_.size(), 0);
131 CHECK(NLMSG_OK(header(), buffer_.size())); 140 CHECK(NLMSG_OK(header(), buffer_.size()));
132 } 141 }
133 142
134 struct nlmsghdr* header() { 143 struct nlmsghdr* header() {
135 return reinterpret_cast<struct nlmsghdr*>(&buffer_[0]); 144 return reinterpret_cast<struct nlmsghdr*>(&buffer_[0]);
136 } 145 }
137 146
138 Buffer buffer_; 147 Buffer buffer_;
139 }; 148 };
140 149
(...skipping 21 matching lines...) Expand all
162 nlmsg.AddAttribute(IFA_CACHEINFO, &cache_info, sizeof(cache_info)); 171 nlmsg.AddAttribute(IFA_CACHEINFO, &cache_info, sizeof(cache_info));
163 nlmsg.AppendTo(output); 172 nlmsg.AppendTo(output);
164 } 173 }
165 174
166 void MakeAddrMessage(uint16 type, 175 void MakeAddrMessage(uint16 type,
167 uint8 flags, 176 uint8 flags,
168 uint8 family, 177 uint8 family,
169 const IPAddressNumber& address, 178 const IPAddressNumber& address,
170 const IPAddressNumber& local, 179 const IPAddressNumber& local,
171 Buffer* output) { 180 Buffer* output) {
172 MakeAddrMessageWithCacheInfo(type, flags, family, address, local, 181 MakeAddrMessageWithCacheInfo(
173 INFINITY_LIFE_TIME, output); 182 type, flags, family, address, local, INFINITY_LIFE_TIME, output);
174 } 183 }
175 184
176 void MakeLinkMessage(uint16 type, uint32 flags, uint32 index, Buffer* output) { 185 void MakeLinkMessage(uint16 type, uint32 flags, uint32 index, Buffer* output) {
177 NetlinkMessage nlmsg(type); 186 NetlinkMessage nlmsg(type);
178 struct ifinfomsg msg = {}; 187 struct ifinfomsg msg = {};
179 msg.ifi_index = index; 188 msg.ifi_index = index;
180 msg.ifi_flags = flags; 189 msg.ifi_flags = flags;
181 nlmsg.AddPayload(&msg, sizeof(msg)); 190 nlmsg.AddPayload(&msg, sizeof(msg));
182 output->clear(); 191 output->clear();
183 nlmsg.AppendTo(output); 192 nlmsg.AppendTo(output);
184 } 193 }
185 194
186 const unsigned char kAddress0[] = { 127, 0, 0, 1 }; 195 const unsigned char kAddress0[] = {127, 0, 0, 1};
187 const unsigned char kAddress1[] = { 10, 0, 0, 1 }; 196 const unsigned char kAddress1[] = {10, 0, 0, 1};
188 const unsigned char kAddress2[] = { 192, 168, 0, 1 }; 197 const unsigned char kAddress2[] = {192, 168, 0, 1};
189 const unsigned char kAddress3[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198 const unsigned char kAddress3[] = {0, 0, 0, 0, 0, 0, 0, 0,
190 0, 0, 0, 1 }; 199 0, 0, 0, 0, 0, 0, 0, 1};
191 200
192 TEST_F(AddressTrackerLinuxTest, NewAddress) { 201 TEST_F(AddressTrackerLinuxTest, NewAddress) {
193 const IPAddressNumber kEmpty; 202 const IPAddressNumber kEmpty;
194 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0)); 203 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0));
195 const IPAddressNumber kAddr1(kAddress1, kAddress1 + arraysize(kAddress1)); 204 const IPAddressNumber kAddr1(kAddress1, kAddress1 + arraysize(kAddress1));
196 const IPAddressNumber kAddr2(kAddress2, kAddress2 + arraysize(kAddress2)); 205 const IPAddressNumber kAddr2(kAddress2, kAddress2 + arraysize(kAddress2));
197 const IPAddressNumber kAddr3(kAddress3, kAddress3 + arraysize(kAddress3)); 206 const IPAddressNumber kAddr3(kAddress3, kAddress3 + arraysize(kAddress3));
198 207
199 Buffer buffer; 208 Buffer buffer;
200 MakeAddrMessage(RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kEmpty, 209 MakeAddrMessage(
201 &buffer); 210 RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kEmpty, &buffer);
202 EXPECT_TRUE(HandleAddressMessage(buffer)); 211 EXPECT_TRUE(HandleAddressMessage(buffer));
203 AddressTrackerLinux::AddressMap map = GetAddressMap(); 212 AddressTrackerLinux::AddressMap map = GetAddressMap();
204 EXPECT_EQ(1u, map.size()); 213 EXPECT_EQ(1u, map.size());
205 EXPECT_EQ(1u, map.count(kAddr0)); 214 EXPECT_EQ(1u, map.count(kAddr0));
206 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags); 215 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags);
207 216
208 buffer.clear(); 217 buffer.clear();
209 MakeAddrMessage(RTM_NEWADDR, IFA_F_HOMEADDRESS, AF_INET, kAddr1, kAddr2, 218 MakeAddrMessage(
210 &buffer); 219 RTM_NEWADDR, IFA_F_HOMEADDRESS, AF_INET, kAddr1, kAddr2, &buffer);
211 EXPECT_TRUE(HandleAddressMessage(buffer)); 220 EXPECT_TRUE(HandleAddressMessage(buffer));
212 map = GetAddressMap(); 221 map = GetAddressMap();
213 EXPECT_EQ(2u, map.size()); 222 EXPECT_EQ(2u, map.size());
214 EXPECT_EQ(1u, map.count(kAddr0)); 223 EXPECT_EQ(1u, map.count(kAddr0));
215 EXPECT_EQ(1u, map.count(kAddr2)); 224 EXPECT_EQ(1u, map.count(kAddr2));
216 EXPECT_EQ(IFA_F_HOMEADDRESS, map[kAddr2].ifa_flags); 225 EXPECT_EQ(IFA_F_HOMEADDRESS, map[kAddr2].ifa_flags);
217 226
218 buffer.clear(); 227 buffer.clear();
219 MakeAddrMessage(RTM_NEWADDR, 0, AF_INET6, kEmpty, kAddr3, &buffer); 228 MakeAddrMessage(RTM_NEWADDR, 0, AF_INET6, kEmpty, kAddr3, &buffer);
220 EXPECT_TRUE(HandleAddressMessage(buffer)); 229 EXPECT_TRUE(HandleAddressMessage(buffer));
221 map = GetAddressMap(); 230 map = GetAddressMap();
222 EXPECT_EQ(3u, map.size()); 231 EXPECT_EQ(3u, map.size());
223 EXPECT_EQ(1u, map.count(kAddr3)); 232 EXPECT_EQ(1u, map.count(kAddr3));
224 } 233 }
225 234
226 TEST_F(AddressTrackerLinuxTest, NewAddressChange) { 235 TEST_F(AddressTrackerLinuxTest, NewAddressChange) {
227 const IPAddressNumber kEmpty; 236 const IPAddressNumber kEmpty;
228 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0)); 237 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0));
229 238
230 Buffer buffer; 239 Buffer buffer;
231 MakeAddrMessage(RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kEmpty, 240 MakeAddrMessage(
232 &buffer); 241 RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kEmpty, &buffer);
233 EXPECT_TRUE(HandleAddressMessage(buffer)); 242 EXPECT_TRUE(HandleAddressMessage(buffer));
234 AddressTrackerLinux::AddressMap map = GetAddressMap(); 243 AddressTrackerLinux::AddressMap map = GetAddressMap();
235 EXPECT_EQ(1u, map.size()); 244 EXPECT_EQ(1u, map.size());
236 EXPECT_EQ(1u, map.count(kAddr0)); 245 EXPECT_EQ(1u, map.count(kAddr0));
237 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags); 246 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags);
238 247
239 buffer.clear(); 248 buffer.clear();
240 MakeAddrMessage(RTM_NEWADDR, IFA_F_HOMEADDRESS, AF_INET, kAddr0, kEmpty, 249 MakeAddrMessage(
241 &buffer); 250 RTM_NEWADDR, IFA_F_HOMEADDRESS, AF_INET, kAddr0, kEmpty, &buffer);
242 EXPECT_TRUE(HandleAddressMessage(buffer)); 251 EXPECT_TRUE(HandleAddressMessage(buffer));
243 map = GetAddressMap(); 252 map = GetAddressMap();
244 EXPECT_EQ(1u, map.size()); 253 EXPECT_EQ(1u, map.size());
245 EXPECT_EQ(1u, map.count(kAddr0)); 254 EXPECT_EQ(1u, map.count(kAddr0));
246 EXPECT_EQ(IFA_F_HOMEADDRESS, map[kAddr0].ifa_flags); 255 EXPECT_EQ(IFA_F_HOMEADDRESS, map[kAddr0].ifa_flags);
247 256
248 // Both messages in one buffer. 257 // Both messages in one buffer.
249 buffer.clear(); 258 buffer.clear();
250 MakeAddrMessage(RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kEmpty, 259 MakeAddrMessage(
251 &buffer); 260 RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kEmpty, &buffer);
252 MakeAddrMessage(RTM_NEWADDR, IFA_F_HOMEADDRESS, AF_INET, kAddr0, kEmpty, 261 MakeAddrMessage(
253 &buffer); 262 RTM_NEWADDR, IFA_F_HOMEADDRESS, AF_INET, kAddr0, kEmpty, &buffer);
254 EXPECT_TRUE(HandleAddressMessage(buffer)); 263 EXPECT_TRUE(HandleAddressMessage(buffer));
255 map = GetAddressMap(); 264 map = GetAddressMap();
256 EXPECT_EQ(1u, map.size()); 265 EXPECT_EQ(1u, map.size());
257 EXPECT_EQ(IFA_F_HOMEADDRESS, map[kAddr0].ifa_flags); 266 EXPECT_EQ(IFA_F_HOMEADDRESS, map[kAddr0].ifa_flags);
258 } 267 }
259 268
260 TEST_F(AddressTrackerLinuxTest, NewAddressDuplicate) { 269 TEST_F(AddressTrackerLinuxTest, NewAddressDuplicate) {
261 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0)); 270 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0));
262 271
263 Buffer buffer; 272 Buffer buffer;
264 MakeAddrMessage(RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kAddr0, 273 MakeAddrMessage(
265 &buffer); 274 RTM_NEWADDR, IFA_F_TEMPORARY, AF_INET, kAddr0, kAddr0, &buffer);
266 EXPECT_TRUE(HandleAddressMessage(buffer)); 275 EXPECT_TRUE(HandleAddressMessage(buffer));
267 AddressTrackerLinux::AddressMap map = GetAddressMap(); 276 AddressTrackerLinux::AddressMap map = GetAddressMap();
268 EXPECT_EQ(1u, map.size()); 277 EXPECT_EQ(1u, map.size());
269 EXPECT_EQ(1u, map.count(kAddr0)); 278 EXPECT_EQ(1u, map.count(kAddr0));
270 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags); 279 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags);
271 280
272 EXPECT_FALSE(HandleAddressMessage(buffer)); 281 EXPECT_FALSE(HandleAddressMessage(buffer));
273 map = GetAddressMap(); 282 map = GetAddressMap();
274 EXPECT_EQ(1u, map.size()); 283 EXPECT_EQ(1u, map.size());
275 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags); 284 EXPECT_EQ(IFA_F_TEMPORARY, map[kAddr0].ifa_flags);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 Buffer buffer; 326 Buffer buffer;
318 MakeAddrMessage(RTM_NEWADDR, 0, AF_INET6, kEmpty, kAddr3, &buffer); 327 MakeAddrMessage(RTM_NEWADDR, 0, AF_INET6, kEmpty, kAddr3, &buffer);
319 EXPECT_TRUE(HandleAddressMessage(buffer)); 328 EXPECT_TRUE(HandleAddressMessage(buffer));
320 AddressTrackerLinux::AddressMap map = GetAddressMap(); 329 AddressTrackerLinux::AddressMap map = GetAddressMap();
321 EXPECT_EQ(1u, map.size()); 330 EXPECT_EQ(1u, map.size());
322 EXPECT_EQ(1u, map.count(kAddr3)); 331 EXPECT_EQ(1u, map.count(kAddr3));
323 EXPECT_EQ(0, map[kAddr3].ifa_flags); 332 EXPECT_EQ(0, map[kAddr3].ifa_flags);
324 333
325 // Verify 0 preferred lifetime implies deprecated. 334 // Verify 0 preferred lifetime implies deprecated.
326 buffer.clear(); 335 buffer.clear();
327 MakeAddrMessageWithCacheInfo(RTM_NEWADDR, 0, AF_INET6, kEmpty, kAddr3, 0, 336 MakeAddrMessageWithCacheInfo(
328 &buffer); 337 RTM_NEWADDR, 0, AF_INET6, kEmpty, kAddr3, 0, &buffer);
329 EXPECT_TRUE(HandleAddressMessage(buffer)); 338 EXPECT_TRUE(HandleAddressMessage(buffer));
330 map = GetAddressMap(); 339 map = GetAddressMap();
331 EXPECT_EQ(1u, map.size()); 340 EXPECT_EQ(1u, map.size());
332 EXPECT_EQ(IFA_F_DEPRECATED, map[kAddr3].ifa_flags); 341 EXPECT_EQ(IFA_F_DEPRECATED, map[kAddr3].ifa_flags);
333 342
334 // Verify properly flagged message doesn't imply change. 343 // Verify properly flagged message doesn't imply change.
335 buffer.clear(); 344 buffer.clear();
336 MakeAddrMessageWithCacheInfo(RTM_NEWADDR, IFA_F_DEPRECATED, AF_INET6, kEmpty, 345 MakeAddrMessageWithCacheInfo(
337 kAddr3, 0, &buffer); 346 RTM_NEWADDR, IFA_F_DEPRECATED, AF_INET6, kEmpty, kAddr3, 0, &buffer);
338 EXPECT_FALSE(HandleAddressMessage(buffer)); 347 EXPECT_FALSE(HandleAddressMessage(buffer));
339 map = GetAddressMap(); 348 map = GetAddressMap();
340 EXPECT_EQ(1u, map.size()); 349 EXPECT_EQ(1u, map.size());
341 EXPECT_EQ(IFA_F_DEPRECATED, map[kAddr3].ifa_flags); 350 EXPECT_EQ(IFA_F_DEPRECATED, map[kAddr3].ifa_flags);
342 351
343 // Verify implied deprecated doesn't imply change. 352 // Verify implied deprecated doesn't imply change.
344 buffer.clear(); 353 buffer.clear();
345 MakeAddrMessageWithCacheInfo(RTM_NEWADDR, 0, AF_INET6, kEmpty, kAddr3, 0, 354 MakeAddrMessageWithCacheInfo(
346 &buffer); 355 RTM_NEWADDR, 0, AF_INET6, kEmpty, kAddr3, 0, &buffer);
347 EXPECT_FALSE(HandleAddressMessage(buffer)); 356 EXPECT_FALSE(HandleAddressMessage(buffer));
348 map = GetAddressMap(); 357 map = GetAddressMap();
349 EXPECT_EQ(1u, map.size()); 358 EXPECT_EQ(1u, map.size());
350 EXPECT_EQ(IFA_F_DEPRECATED, map[kAddr3].ifa_flags); 359 EXPECT_EQ(IFA_F_DEPRECATED, map[kAddr3].ifa_flags);
351 } 360 }
352 361
353 TEST_F(AddressTrackerLinuxTest, IgnoredMessage) { 362 TEST_F(AddressTrackerLinuxTest, IgnoredMessage) {
354 const IPAddressNumber kEmpty; 363 const IPAddressNumber kEmpty;
355 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0)); 364 const IPAddressNumber kAddr0(kAddress0, kAddress0 + arraysize(kAddress0));
356 const IPAddressNumber kAddr3(kAddress3, kAddress3 + arraysize(kAddress3)); 365 const IPAddressNumber kAddr3(kAddress3, kAddress3 + arraysize(kAddress3));
(...skipping 22 matching lines...) Expand all
379 EXPECT_TRUE(HandleAddressMessage(buffer)); 388 EXPECT_TRUE(HandleAddressMessage(buffer));
380 EXPECT_EQ(1u, GetAddressMap().size()); 389 EXPECT_EQ(1u, GetAddressMap().size());
381 } 390 }
382 391
383 TEST_F(AddressTrackerLinuxTest, AddInterface) { 392 TEST_F(AddressTrackerLinuxTest, AddInterface) {
384 Buffer buffer; 393 Buffer buffer;
385 394
386 // Ignores loopback. 395 // Ignores loopback.
387 MakeLinkMessage(RTM_NEWLINK, 396 MakeLinkMessage(RTM_NEWLINK,
388 IFF_LOOPBACK | IFF_UP | IFF_LOWER_UP | IFF_RUNNING, 397 IFF_LOOPBACK | IFF_UP | IFF_LOWER_UP | IFF_RUNNING,
389 0, &buffer); 398 0,
399 &buffer);
390 EXPECT_FALSE(HandleLinkMessage(buffer)); 400 EXPECT_FALSE(HandleLinkMessage(buffer));
391 EXPECT_TRUE(GetOnlineLinks()->empty()); 401 EXPECT_TRUE(GetOnlineLinks()->empty());
392 402
393 // Ignores not IFF_LOWER_UP. 403 // Ignores not IFF_LOWER_UP.
394 MakeLinkMessage(RTM_NEWLINK, IFF_UP | IFF_RUNNING, 0, &buffer); 404 MakeLinkMessage(RTM_NEWLINK, IFF_UP | IFF_RUNNING, 0, &buffer);
395 EXPECT_FALSE(HandleLinkMessage(buffer)); 405 EXPECT_FALSE(HandleLinkMessage(buffer));
396 EXPECT_TRUE(GetOnlineLinks()->empty()); 406 EXPECT_TRUE(GetOnlineLinks()->empty());
397 407
398 // Ignores deletion. 408 // Ignores deletion.
399 MakeLinkMessage(RTM_DELLINK, IFF_UP | IFF_LOWER_UP | IFF_RUNNING, 0, &buffer); 409 MakeLinkMessage(RTM_DELLINK, IFF_UP | IFF_LOWER_UP | IFF_RUNNING, 0, &buffer);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 EXPECT_TRUE(HandleLinkMessage(buffer)); 459 EXPECT_TRUE(HandleLinkMessage(buffer));
450 EXPECT_TRUE(GetOnlineLinks()->empty()); 460 EXPECT_TRUE(GetOnlineLinks()->empty());
451 } 461 }
452 462
453 TEST_F(AddressTrackerLinuxTest, TunnelInterface) { 463 TEST_F(AddressTrackerLinuxTest, TunnelInterface) {
454 Buffer buffer; 464 Buffer buffer;
455 465
456 // Ignores without "tun" prefixed name. 466 // Ignores without "tun" prefixed name.
457 MakeLinkMessage(RTM_NEWLINK, 467 MakeLinkMessage(RTM_NEWLINK,
458 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 468 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT,
459 0, &buffer); 469 0,
470 &buffer);
460 EXPECT_FALSE(HandleTunnelMessage(buffer)); 471 EXPECT_FALSE(HandleTunnelMessage(buffer));
461 472
462 // Verify success. 473 // Verify success.
463 MakeLinkMessage(RTM_NEWLINK, 474 MakeLinkMessage(RTM_NEWLINK,
464 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 475 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT,
465 kTestInterfaceTun, &buffer); 476 kTestInterfaceTun,
477 &buffer);
466 EXPECT_TRUE(HandleTunnelMessage(buffer)); 478 EXPECT_TRUE(HandleTunnelMessage(buffer));
467 479
468 // Ignores redundant enables. 480 // Ignores redundant enables.
469 MakeLinkMessage(RTM_NEWLINK, 481 MakeLinkMessage(RTM_NEWLINK,
470 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 482 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT,
471 kTestInterfaceTun, &buffer); 483 kTestInterfaceTun,
484 &buffer);
472 EXPECT_FALSE(HandleTunnelMessage(buffer)); 485 EXPECT_FALSE(HandleTunnelMessage(buffer));
473 486
474 // Ignores deleting without "tun" prefixed name. 487 // Ignores deleting without "tun" prefixed name.
475 MakeLinkMessage(RTM_DELLINK, 488 MakeLinkMessage(RTM_DELLINK,
476 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 489 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT,
477 0, &buffer); 490 0,
491 &buffer);
478 EXPECT_FALSE(HandleTunnelMessage(buffer)); 492 EXPECT_FALSE(HandleTunnelMessage(buffer));
479 493
480 // Verify successful deletion 494 // Verify successful deletion
481 MakeLinkMessage(RTM_DELLINK, 495 MakeLinkMessage(RTM_DELLINK,
482 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 496 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT,
483 kTestInterfaceTun, &buffer); 497 kTestInterfaceTun,
498 &buffer);
484 EXPECT_TRUE(HandleTunnelMessage(buffer)); 499 EXPECT_TRUE(HandleTunnelMessage(buffer));
485 500
486 // Ignores redundant deletions. 501 // Ignores redundant deletions.
487 MakeLinkMessage(RTM_DELLINK, 502 MakeLinkMessage(RTM_DELLINK,
488 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT, 503 IFF_UP | IFF_LOWER_UP | IFF_RUNNING | IFF_POINTOPOINT,
489 kTestInterfaceTun, &buffer); 504 kTestInterfaceTun,
505 &buffer);
490 EXPECT_FALSE(HandleTunnelMessage(buffer)); 506 EXPECT_FALSE(HandleTunnelMessage(buffer));
491 } 507 }
492 508
493 // Check AddressTrackerLinux::get_interface_name_ original implementation 509 // Check AddressTrackerLinux::get_interface_name_ original implementation
494 // doesn't crash or return NULL. 510 // doesn't crash or return NULL.
495 TEST_F(AddressTrackerLinuxTest, GetInterfaceName) { 511 TEST_F(AddressTrackerLinuxTest, GetInterfaceName) {
496 for (int i = 0; i < 10; i++) 512 for (int i = 0; i < 10; i++)
497 EXPECT_NE((const char*)NULL, original_get_interface_name_(i)); 513 EXPECT_NE((const char*)NULL, original_get_interface_name_(i));
498 } 514 }
499 515
500 } // namespace 516 } // namespace
501 517
502 } // namespace internal 518 } // namespace internal
503 } // namespace net 519 } // namespace net
OLDNEW
« no previous file with comments | « net/base/address_tracker_linux.cc ('k') | net/base/auth.h » ('j') | net/base/mime_sniffer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698