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

Side by Side Diff: webrtc/base/network_unittest.cc

Issue 1696933003: When doing continual gathering, remove local candidates when a network is dropped. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Fix a type conversion error on Windows Created 4 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
« no previous file with comments | « webrtc/base/network.cc ('k') | webrtc/p2p/base/p2ptransportchannel.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 /* 1 /*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 } // namespace 51 } // namespace
52 52
53 class NetworkTest : public testing::Test, public sigslot::has_slots<> { 53 class NetworkTest : public testing::Test, public sigslot::has_slots<> {
54 public: 54 public:
55 NetworkTest() : callback_called_(false) {} 55 NetworkTest() : callback_called_(false) {}
56 56
57 void OnNetworksChanged() { 57 void OnNetworksChanged() {
58 callback_called_ = true; 58 callback_called_ = true;
59 } 59 }
60 60
61 void listenToNetworkInactive(BasicNetworkManager& network_manager) {
62 BasicNetworkManager::NetworkList networks;
63 network_manager.GetNetworks(&networks);
64 for (Network* network : networks) {
65 network->SignalInactive.connect(this, &NetworkTest::OnNetworkInactive);
66 }
67 }
68
69 void OnNetworkInactive(const Network* network) { num_networks_inactive_++; }
70
61 NetworkManager::Stats MergeNetworkList( 71 NetworkManager::Stats MergeNetworkList(
62 BasicNetworkManager& network_manager, 72 BasicNetworkManager& network_manager,
63 const NetworkManager::NetworkList& list, 73 const NetworkManager::NetworkList& list,
64 bool* changed) { 74 bool* changed) {
65 NetworkManager::Stats stats; 75 NetworkManager::Stats stats;
66 network_manager.MergeNetworkList(list, changed, &stats); 76 network_manager.MergeNetworkList(list, changed, &stats);
67 return stats; 77 return stats;
68 } 78 }
69 79
70 bool IsIgnoredNetwork(BasicNetworkManager& network_manager, 80 bool IsIgnoredNetwork(BasicNetworkManager& network_manager,
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 delete if_addr->ifa_addr; 150 delete if_addr->ifa_addr;
141 delete if_addr->ifa_netmask; 151 delete if_addr->ifa_netmask;
142 delete if_addr; 152 delete if_addr;
143 if_addr = next_addr; 153 if_addr = next_addr;
144 } 154 }
145 } 155 }
146 #endif // defined(WEBRTC_POSIX) 156 #endif // defined(WEBRTC_POSIX)
147 157
148 protected: 158 protected:
149 bool callback_called_; 159 bool callback_called_;
160 // Number of networks that become inactive.
161 int num_networks_inactive_ = 0;
150 }; 162 };
151 163
152 class TestBasicNetworkManager : public BasicNetworkManager { 164 class TestBasicNetworkManager : public BasicNetworkManager {
153 public: 165 public:
154 using BasicNetworkManager::QueryDefaultLocalAddress; 166 using BasicNetworkManager::QueryDefaultLocalAddress;
155 using BasicNetworkManager::set_default_local_addresses; 167 using BasicNetworkManager::set_default_local_addresses;
156 }; 168 };
157 169
158 // Test that the Network ctor works properly. 170 // Test that the Network ctor works properly.
159 TEST_F(NetworkTest, TestNetworkConstruct) { 171 TEST_F(NetworkTest, TestNetworkConstruct) {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 BasicNetworkManager manager; 285 BasicNetworkManager manager;
274 286
275 // Add ipv4_network1 to the list of networks. 287 // Add ipv4_network1 to the list of networks.
276 NetworkManager::NetworkList list; 288 NetworkManager::NetworkList list;
277 list.push_back(new Network(ipv4_network1)); 289 list.push_back(new Network(ipv4_network1));
278 bool changed; 290 bool changed;
279 NetworkManager::Stats stats = MergeNetworkList(manager, list, &changed); 291 NetworkManager::Stats stats = MergeNetworkList(manager, list, &changed);
280 EXPECT_TRUE(changed); 292 EXPECT_TRUE(changed);
281 EXPECT_EQ(stats.ipv6_network_count, 0); 293 EXPECT_EQ(stats.ipv6_network_count, 0);
282 EXPECT_EQ(stats.ipv4_network_count, 1); 294 EXPECT_EQ(stats.ipv4_network_count, 1);
295 listenToNetworkInactive(manager);
283 list.clear(); 296 list.clear();
284 297
285 manager.GetNetworks(&list); 298 manager.GetNetworks(&list);
286 EXPECT_EQ(1U, list.size()); 299 EXPECT_EQ(1U, list.size());
287 EXPECT_EQ(ipv4_network1.ToString(), list[0]->ToString()); 300 EXPECT_EQ(ipv4_network1.ToString(), list[0]->ToString());
288 Network* net1 = list[0]; 301 Network* net1 = list[0];
289 list.clear(); 302 list.clear();
290 303
291 // Replace ipv4_network1 with ipv4_network2. 304 // Replace ipv4_network1 with ipv4_network2.
292 list.push_back(new Network(ipv4_network2)); 305 list.push_back(new Network(ipv4_network2));
293 stats = MergeNetworkList(manager, list, &changed); 306 stats = MergeNetworkList(manager, list, &changed);
294 EXPECT_TRUE(changed); 307 EXPECT_TRUE(changed);
295 EXPECT_EQ(stats.ipv6_network_count, 0); 308 EXPECT_EQ(stats.ipv6_network_count, 0);
296 EXPECT_EQ(stats.ipv4_network_count, 1); 309 EXPECT_EQ(stats.ipv4_network_count, 1);
310 EXPECT_EQ(1, num_networks_inactive_);
297 list.clear(); 311 list.clear();
312 num_networks_inactive_ = 0;
298 313
299 manager.GetNetworks(&list); 314 manager.GetNetworks(&list);
300 EXPECT_EQ(1U, list.size()); 315 EXPECT_EQ(1U, list.size());
301 EXPECT_EQ(ipv4_network2.ToString(), list[0]->ToString()); 316 EXPECT_EQ(ipv4_network2.ToString(), list[0]->ToString());
302 Network* net2 = list[0]; 317 Network* net2 = list[0];
303 list.clear(); 318 list.clear();
304 319
305 // Add Network2 back. 320 // Add Network2 back.
306 list.push_back(new Network(ipv4_network1)); 321 list.push_back(new Network(ipv4_network1));
307 list.push_back(new Network(ipv4_network2)); 322 list.push_back(new Network(ipv4_network2));
308 stats = MergeNetworkList(manager, list, &changed); 323 stats = MergeNetworkList(manager, list, &changed);
309 EXPECT_TRUE(changed); 324 EXPECT_TRUE(changed);
310 EXPECT_EQ(stats.ipv6_network_count, 0); 325 EXPECT_EQ(stats.ipv6_network_count, 0);
311 EXPECT_EQ(stats.ipv4_network_count, 2); 326 EXPECT_EQ(stats.ipv4_network_count, 2);
327 EXPECT_EQ(0, num_networks_inactive_);
312 list.clear(); 328 list.clear();
313 329
314 // Verify that we get previous instances of Network objects. 330 // Verify that we get previous instances of Network objects.
315 manager.GetNetworks(&list); 331 manager.GetNetworks(&list);
316 EXPECT_EQ(2U, list.size()); 332 EXPECT_EQ(2U, list.size());
317 EXPECT_TRUE((net1 == list[0] && net2 == list[1]) || 333 EXPECT_TRUE((net1 == list[0] && net2 == list[1]) ||
318 (net1 == list[1] && net2 == list[0])); 334 (net1 == list[1] && net2 == list[0]));
319 list.clear(); 335 list.clear();
320 336
321 // Call MergeNetworkList() again and verify that we don't get update 337 // Call MergeNetworkList() again and verify that we don't get update
322 // notification. 338 // notification.
323 list.push_back(new Network(ipv4_network2)); 339 list.push_back(new Network(ipv4_network2));
324 list.push_back(new Network(ipv4_network1)); 340 list.push_back(new Network(ipv4_network1));
325 stats = MergeNetworkList(manager, list, &changed); 341 stats = MergeNetworkList(manager, list, &changed);
326 EXPECT_FALSE(changed); 342 EXPECT_FALSE(changed);
327 EXPECT_EQ(stats.ipv6_network_count, 0); 343 EXPECT_EQ(stats.ipv6_network_count, 0);
328 EXPECT_EQ(stats.ipv4_network_count, 2); 344 EXPECT_EQ(stats.ipv4_network_count, 2);
345 EXPECT_EQ(0, num_networks_inactive_);
329 list.clear(); 346 list.clear();
330 347
331 // Verify that we get previous instances of Network objects. 348 // Verify that we get previous instances of Network objects.
332 manager.GetNetworks(&list); 349 manager.GetNetworks(&list);
333 EXPECT_EQ(2U, list.size()); 350 EXPECT_EQ(2U, list.size());
334 EXPECT_TRUE((net1 == list[0] && net2 == list[1]) || 351 EXPECT_TRUE((net1 == list[0] && net2 == list[1]) ||
335 (net1 == list[1] && net2 == list[0])); 352 (net1 == list[1] && net2 == list[0]));
336 list.clear(); 353 list.clear();
337 } 354 }
338 355
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
977 manager.set_default_local_addresses(GetLoopbackIP(AF_INET), 994 manager.set_default_local_addresses(GetLoopbackIP(AF_INET),
978 GetLoopbackIP(AF_INET6)); 995 GetLoopbackIP(AF_INET6));
979 EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET, &ip)); 996 EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET, &ip));
980 EXPECT_EQ(ip, GetLoopbackIP(AF_INET)); 997 EXPECT_EQ(ip, GetLoopbackIP(AF_INET));
981 EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET6, &ip)); 998 EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET6, &ip));
982 EXPECT_EQ(ip, GetLoopbackIP(AF_INET6)); 999 EXPECT_EQ(ip, GetLoopbackIP(AF_INET6));
983 manager.StopUpdating(); 1000 manager.StopUpdating();
984 } 1001 }
985 1002
986 } // namespace rtc 1003 } // namespace rtc
OLDNEW
« no previous file with comments | « webrtc/base/network.cc ('k') | webrtc/p2p/base/p2ptransportchannel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698