Fix AndroidNetworkMonitorTests crash due to DCHECK failure
AndroidNetworkMonitor::SetNetworkInfos assumes this method is called only once, but unittests calls it twice. One is called by the startMonitoring Java method, and the other is called by each test. Because of this, these tests will not succeed if dcheck_always_on is true. To solve this problem, use OnNetworkConnected_n instead of SetNetworkInfos in each test. Bug: None Change-Id: I027706ad5ccd597a91e3a66f15e181ee22d4aaa9 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/285861 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Jonas Oreland <jonaso@webrtc.org> Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com> Cr-Commit-Position: refs/heads/main@{#38798}
This commit is contained in:

committed by
WebRTC LUCI CQ

parent
c8157c33b4
commit
a639528a43
@ -121,7 +121,7 @@ TEST_F(AndroidNetworkMonitorTest,
|
||||
jni::NetworkInformation net_info =
|
||||
CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address1);
|
||||
std::vector<jni::NetworkInformation> net_infos(1, net_info);
|
||||
network_monitor_->SetNetworkInfos(net_infos);
|
||||
network_monitor_->OnNetworkConnected_n(net_info);
|
||||
|
||||
auto network_handle1 =
|
||||
network_monitor_->FindNetworkHandleFromAddressOrName(ipv6_address1, "");
|
||||
@ -144,7 +144,7 @@ TEST_F(AndroidNetworkMonitorTest, TestFindNetworkHandleUsingIfName) {
|
||||
jni::NetworkInformation net_info =
|
||||
CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address1);
|
||||
std::vector<jni::NetworkInformation> net_infos(1, net_info);
|
||||
network_monitor_->SetNetworkInfos(net_infos);
|
||||
network_monitor_->OnNetworkConnected_n(net_info);
|
||||
|
||||
rtc::IPAddress ipv4_address(kTestIpv4Address);
|
||||
|
||||
@ -170,7 +170,7 @@ TEST_F(AndroidNetworkMonitorTest, TestUnderlyingVpnType) {
|
||||
CreateNetworkInformation("wlan0", ipv4_handle, ipv4_address);
|
||||
net_info.type = jni::NETWORK_VPN;
|
||||
net_info.underlying_type_for_vpn = jni::NETWORK_WIFI;
|
||||
network_monitor_->SetNetworkInfos({net_info});
|
||||
network_monitor_->OnNetworkConnected_n(net_info);
|
||||
|
||||
EXPECT_EQ(
|
||||
rtc::ADAPTER_TYPE_WIFI,
|
||||
@ -186,7 +186,7 @@ TEST_F(AndroidNetworkMonitorTest, Disconnect) {
|
||||
jni::NetworkInformation net_info =
|
||||
CreateNetworkInformation("wlan0", ipv4_handle, ipv4_address);
|
||||
net_info.type = jni::NETWORK_WIFI;
|
||||
network_monitor_->SetNetworkInfos({net_info});
|
||||
network_monitor_->OnNetworkConnected_n(net_info);
|
||||
|
||||
EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
|
||||
EXPECT_TRUE(network_monitor_
|
||||
@ -215,7 +215,7 @@ TEST_F(AndroidNetworkMonitorTest, Reset) {
|
||||
jni::NetworkInformation net_info =
|
||||
CreateNetworkInformation("wlan0", ipv4_handle, ipv4_address);
|
||||
net_info.type = jni::NETWORK_WIFI;
|
||||
network_monitor_->SetNetworkInfos({net_info});
|
||||
network_monitor_->OnNetworkConnected_n(net_info);
|
||||
|
||||
EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
|
||||
EXPECT_TRUE(network_monitor_
|
||||
@ -250,7 +250,8 @@ TEST_F(AndroidNetworkMonitorTest, DuplicateIfname) {
|
||||
CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address);
|
||||
net_info2.type = jni::NETWORK_UNKNOWN_CELLULAR;
|
||||
|
||||
network_monitor_->SetNetworkInfos({net_info1, net_info2});
|
||||
network_monitor_->OnNetworkConnected_n(net_info1);
|
||||
network_monitor_->OnNetworkConnected_n(net_info2);
|
||||
|
||||
// The last added.
|
||||
EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
|
||||
@ -281,7 +282,8 @@ TEST_F(AndroidNetworkMonitorTest, DuplicateIfnameDisconnectOwner) {
|
||||
CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address);
|
||||
net_info2.type = jni::NETWORK_UNKNOWN_CELLULAR;
|
||||
|
||||
network_monitor_->SetNetworkInfos({net_info1, net_info2});
|
||||
network_monitor_->OnNetworkConnected_n(net_info1);
|
||||
network_monitor_->OnNetworkConnected_n(net_info2);
|
||||
|
||||
// The last added.
|
||||
EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
|
||||
@ -311,7 +313,8 @@ TEST_F(AndroidNetworkMonitorTest, DuplicateIfnameDisconnectNonOwner) {
|
||||
CreateNetworkInformation("wlan0", ipv6_handle, ipv6_address);
|
||||
net_info2.type = jni::NETWORK_UNKNOWN_CELLULAR;
|
||||
|
||||
network_monitor_->SetNetworkInfos({net_info1, net_info2});
|
||||
network_monitor_->OnNetworkConnected_n(net_info1);
|
||||
network_monitor_->OnNetworkConnected_n(net_info2);
|
||||
|
||||
// The last added.
|
||||
EXPECT_TRUE(network_monitor_->GetInterfaceInfo("wlan0").available);
|
||||
|
@ -114,6 +114,9 @@ class AndroidNetworkMonitor : public rtc::NetworkMonitorInterface {
|
||||
const JavaRef<jobject>& j_connection_type,
|
||||
jint preference);
|
||||
|
||||
// Visible for testing.
|
||||
void OnNetworkConnected_n(const NetworkInformation& network_info);
|
||||
|
||||
// Visible for testing.
|
||||
absl::optional<NetworkHandle> FindNetworkHandleFromAddressOrName(
|
||||
const rtc::IPAddress& address,
|
||||
@ -121,7 +124,6 @@ class AndroidNetworkMonitor : public rtc::NetworkMonitorInterface {
|
||||
|
||||
private:
|
||||
void reset();
|
||||
void OnNetworkConnected_n(const NetworkInformation& network_info);
|
||||
void OnNetworkDisconnected_n(NetworkHandle network_handle);
|
||||
void OnNetworkPreference_n(NetworkType type,
|
||||
rtc::NetworkPreference preference);
|
||||
|
Reference in New Issue
Block a user