Commit Graph

3454 Commits

Author SHA1 Message Date
Aaron Huang
2685c929f4 Add a test for metered/non-metered mobile network
NetworkTemplate.buildTemplateMobileWithRatType() supports
to build a template with metered filter, so a mobile network
is metered or non-metered should be tested.

This commit also rename buildMobile3gState to buildMobileState
because originally this method uses NetworkInfo to simulate the
network type. The NetworkInfo related codes were removed.
Currently, setMobileRatTypeAndWaitForIdle is used to simulate
the network type in test.

Ignore-AOSP-First: The parent of this change contains a CL will
conflict with internal tree so ignore AOSP first.
Bug: 183776809
Test: this
Change-Id: I8e54e2acb06db81fb0eaf330c4fd7cb391b01ff3
2021-10-26 12:16:18 +00:00
Aaron Huang
eaca5b1982 Add a test for NetworkIdentity.getMetered()
NetworkIdentity has adapted NET_CAPABILITY_TEMPORARILY_NOT_METERED
network capability so add a test case for it.

Ignore-AOSP-First: The parent of this change contains a CL will
conflict with internal tree so ignore AOSP first.
Bug: 183776809
Test: this
Change-Id: I2ca2a8b4db664b76a5a5ee82fcff451efd87c8ff
2021-10-26 12:16:03 +00:00
Lucas Lin
c5e61cc540 Merge changes Ib2d54e53,Ieb606d2b
* changes:
  Test if underlying networks are the same as what VpnService sets
  Convert VpnTest to JUnit4
2021-10-26 06:07:19 +00:00
lucaslin
cacd5b0d2a Test if underlying networks are the same as what VpnService sets
If VpnService set null as the underlying networks, then the
underlying networks will be set as system defeult network.
If VpnService set an empty array as the underlying networks, then
the underlying networks of VPN will not be set to any networks.
If VpnService set a network which is not null or an empty array,
then the underlying networks of VPN should be the same as this
one.

Bug: 191918368
Test: atest CtsHostsideNetworkTests:HostsideVpnTests
Change-Id: Ib2d54e53960e5f899cb8d4cfaa6705ca676354ca
2021-10-26 10:55:41 +08:00
lucaslin
d2de904def Convert VpnTest to JUnit4
This is to fix the error in errorprone target, the error message
is: [JUnit4ClassUsedInJUnit3] Assume cannot be used inside a
JUnit3 class. Convert your class to JUnit4 style.
The error method is: assumeTrue()

Bug: 191918368
Test: atest CtsHostsideNetworkTests:HostsideVpnTests
Change-Id: Ieb606d2ba31cc19510425114c76fd77417227f2c
2021-10-26 10:55:25 +08:00
Aaron Huang
6359ebd099 Update callers to use buildTemplateMobileWithRatType with metered
The method buildTemplateMobileWithRatType is updated to take
metered as a parameter so the callers should be updated to
the new version.

Bug: 183776809
Test: atest FrameworksNetTest
Change-Id: I859514b93705f9ee4f9ae4b0bcddcb61005a78ff
Merged-In: I859514b93705f9ee4f9ae4b0bcddcb61005a78ff
2021-10-25 15:22:59 +00:00
Lucas Lin
acd3e2be33 Merge "Wait for network to be validated when setting a valid private DNS" 2021-10-21 11:34:35 +00:00
lucaslin
4d441a9b8d Wait for network to be validated when setting a valid private DNS
The previous design just set a valid private DNS and checked
whether onCapabilitiesChanged() has received and
NetworkCapabilities#isPrivateDnsBroken is false. It cannot ensure
that the private DNS is working until the network is validated.
So change the design to waiting the network to be validated after
setting a valid private DNS.

Bug: 196769780
Test: atest CtsNetTestCases:ConnectivityManagerTest
Change-Id: I9c173a70e2b81788efa2ecbf928acda0379846da
2021-10-21 16:47:26 +08:00
Lucas Lin
9c9850b944 Merge "Add underlying networks into NetworkAgentInfo if any" 2021-10-21 08:33:29 +00:00
Paul Hu
7a30d04659 Merge "Crash bad callers earlier" 2021-10-20 06:53:39 +00:00
Paul Hu
c4898b85ce Merge "Specify which callback is unexpected in testMobileDataPreferredUids" 2021-10-20 05:39:19 +00:00
Treehugger Robot
9755b43575 Merge "Exclude testGetMultipathPreference on no Wi-Fi devices" 2021-10-20 02:10:47 +00:00
paulhu
c344c9fb9c Specify which callback is unexpected in testMobileDataPreferredUids
This test is flaky due to assertNoCallback(). Because this
method expects no any callback received but the wifi network
may update its capabilities during testing and trigger
onCapabilitiesChanged() to cause test failed. Thus, these
callbacks should be ignored in the tests.

Replace the assertNoCallback to assertNoCallbackThat with
callback type specified to deflake tests.

Also align the available callback verification in the test to
avoid confusion.

Fix: 198367703
Test: atest android.net.cts.ConnectivityManagerTest\
      --iterations 20
Change-Id: Ifde5e9730823c3b6f32590cc436cc4ba11d2b36e
2021-10-19 18:27:19 +08:00
Chalard Jean
4b918ab1a4 Crash bad callers earlier
Instead of crashing when parceling the NetworkInfo object,
crash at the time the bad call is made.

Bug: 145972387
Test: FrameworksNetTests
Change-Id: If8b5fd3d7b800c97211bcd16c9a8c5812708d4ab
2021-10-19 16:43:50 +08:00
lucaslin
6adf5ac19b Add underlying networks into NetworkAgentInfo if any
Now, VPN will set underlying networks into NetworkCapabilities
directly. So the declaredUnderlyingNetworks can also be set
directly when creating a NetworkAgentInfo.

Bug: 191918368
Test: atest FrameworksNetTests:ConnectivityServiceTest
Change-Id: I507072d00ae1eb0c391e5261ab93e359b9c4cb5c
2021-10-19 15:04:56 +08:00
Lucas Lin
39379a40bd Merge "Add new APIs in NetworkCapabilities to set and get underlying networks" 2021-10-18 05:27:59 +00:00
lucaslin
8b2dfa7c02 Add new APIs in NetworkCapabilities to set and get underlying networks
Previously, the caller can only know about the transport type of
the underlying network. The information might not be enough if
the device support WiFi STA+STA.
Thus, provide an API for the caller to get the correct underlying
network.

Bug: 191918368
Test: atest FrameworksNetTests:NetworkCapabilitiesTest
Change-Id: I7752b2356770f4572f6ca4cbaecaa45c09d6d72f
2021-10-15 18:07:12 +08:00
Treehugger Robot
6b6d2eb75b Merge "Ignore testRestrictedNetworkPermission on Q" 2021-10-13 07:01:33 +00:00
Chiachang Wang
1c3cdce86d Exclude testGetMultipathPreference on no Wi-Fi devices
Bug: 202228414
Test: atest CtsNetTestCases
Change-Id: I3112ffb816fd16b2fc7a87c35d8f95eef0144281
2021-10-07 13:19:32 +08:00
Treehugger Robot
6e1c375f50 Merge "Support wifi and ethernet connection for DnsResolverTest." am: f822038c1c
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1833253

Change-Id: I3ae21d9b034e455ba48d9576712a102ccda0f647
2021-10-06 08:52:12 +00:00
steven_fann
fa8dbc5da7 Support wifi and ethernet connection for DnsResolverTest.
Issue: 199675828
Test: atest CtsNetTestCases:android.net.cts.DnsResolverTest

Change-Id: Ie1c7522426314ccc83008b75f90a57f3a53339d4
2021-10-05 15:36:35 +08:00
Treehugger Robot
b370da94ec Merge "Increase timeouts for loopers" am: 2ed9b3dc70
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1844177

Change-Id: I8062108d1faf53bf9efbfb947f3238f02b7cf34f
2021-10-04 10:58:27 +00:00
Treehugger Robot
2ed9b3dc70 Merge "Increase timeouts for loopers" 2021-10-04 10:42:59 +00:00
Treehugger Robot
7366c89d64 Merge "Remove "when" usage in ConnectivityServiceTest" am: f697c61406
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1844176

Change-Id: I9197503f4f19748824ab3cc1efc8d540779399ec
2021-10-04 10:00:40 +00:00
Treehugger Robot
f697c61406 Merge "Remove "when" usage in ConnectivityServiceTest" 2021-10-04 09:42:47 +00:00
Chalard Jean
1afb2e33e2 Increase timeouts for loopers
In coverage tests this seems to randomly fail, which suggests
some delay. Have a constant for timeout and increase its value
significantly where it makes no functional difference.

Test: FrameworksNetTests
Change-Id: I035d865f01688daf3bce30c5130ce550fa84b885
2021-10-04 18:02:17 +09:00
Aaron Huang
045f47bc31 Merge "Enable/disable FrameworksNetTests" am: d1ed1cb8b7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1843117

Change-Id: Ida093c6792bed45d5f65e3ea0e567eb30de74807
2021-10-04 08:07:21 +00:00
Remi NGUYEN VAN
d7331e929f Remove "when" usage in ConnectivityServiceTest
"when" is not thread-safe, as it relies on global state to find which
mock was called with the method to mock in its parameters.

This causes flakes where non-test code that interacts with the mock may
be called from another thread between the contents of "when" and the
"when" method another thread, causing UnfinishedStubbingExceptions or
other test errors. In particular
ConnectivityService#getNetworkCapabilitiesInternal was seen to be
wrongly identified as a mocking site for Dependencies.

Replace all usages with doReturn().when(mock).method() syntax, which has
better thread safety since global state is not necessary to tie the
mock, mocked method and return value.

Bug: 195626111
Test: atest ConnectivityServiceTest
Change-Id: I57c5ffb3b3f799fc59c3af4ccb323fb5d6794fad
2021-10-04 17:03:44 +09:00
Aaron Huang
d1ed1cb8b7 Merge "Enable/disable FrameworksNetTests" 2021-10-04 07:53:09 +00:00
Aaron Huang
1ed8affa72 Enable/disable FrameworksNetTests
Currently, there are some test for classes that are not in
connectivity module. If the platform code has a new change
that the test depends on it, then the test cannot verify the
behavior since the change does not exist in module branch.

This change moves the test for non-module classes out of
FrameworksNetTestsLib so that it doesn't go into coverage tests.
Then add those tests to FrameworksNetTests and use a variable
to enable/disable FrameworksNetTests which could minimize merge
conflicts.

Bug: 201265286
Test: make FrameworksNetTests

Change-Id: Ia9669da2c4d79054710e7f4173bc960e3f77f45a
2021-10-01 19:29:50 +08:00
Chiachang Wang
d2bd93f2e2 Merge "Restore private dns host name after testing" am: 0ee7406d33
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1836114

Change-Id: I51344c514278433e66016a812e1458e5e2df0e8d
2021-10-01 00:54:23 +00:00
Chiachang Wang
e129460c46 Merge "Remove reference when active listener is unregistered" am: a39b107812
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1833145

Change-Id: I7b05b33c2a0c02c298d42ab4891ce543fe5ab9bd
2021-10-01 00:54:16 +00:00
Chiachang Wang
0ee7406d33 Merge "Restore private dns host name after testing" 2021-10-01 00:37:15 +00:00
Chiachang Wang
a39b107812 Merge "Remove reference when active listener is unregistered" 2021-10-01 00:37:00 +00:00
Mark Chien
da862b2a35 Merge "Support set test network to tethering upstream" am: 473d864d20
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1797991

Change-Id: Ifd5c76a943886dfe55e9b68eeb77931dae6fe204
2021-09-30 12:48:15 +00:00
Mark Chien
473d864d20 Merge "Support set test network to tethering upstream" 2021-09-30 12:36:11 +00:00
Chiachang Wang
c345dec57b Merge "Add test for CM#[add|remove]DefaultNetworkActiveListener" am: 2086865010
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1827918

Change-Id: I2b1e5ed720d2ca97f740713ed3b24a119edc8f28
2021-09-30 12:16:40 +00:00
Chiachang Wang
5e54074e6e Restore private dns host name after testing
The helper method in CtsNetUtils will not restore the private
dns hostname back if the device private dns mode is not strict
mode. It does not cause function break since the host
configuration is useful only when the private dns mode is in
strict mode. But tests should restore the setting back to its
old state to prevent break other tests or erase setttings.

Test: atest android.net.cts.ConnectivityManagerTest and
      check if the private dns server configuration is
      changed or not after testing
Change-Id: I7c85ddac7306c7c3eeac84679d96c4cfb11bd875
2021-09-30 10:32:04 +00:00
Chiachang Wang
2de41686e7 Remove reference when active listener is unregistered
The registered listeners are added into internal ArrayMap as a
reference but are not removed when the listeners are
unregistered. The actions for registration should be done in
pairs.

Test: atest FrameworksNetTests
Change-Id: Id9e674f5104d1471dd81224b6a271a8a92172e34
2021-09-30 10:30:35 +00:00
Chiachang Wang
859218c893 Add test for CM#[add|remove]DefaultNetworkActiveListener
Bug: 199753782
Test: atest FrameworksNetTests CtsNetTestCases
Change-Id: I2520f7f5feef61502479767aa023e281d1335ee4
2021-09-30 18:29:29 +08:00
markchien
2fbd3e72d3 Support set test network to tethering upstream
Test: atest EthernetTetheringTest

Change-Id: Ief2a92bc6c573a6bb75c72b7a0630e5c0accfa73
2021-09-30 10:14:58 +00:00
Luke Huang
38f82199ab Merge "Modify Nsd{Service,Manager}Test to conform to its change" 2021-09-29 03:35:20 +00:00
Chalard Jean
d4ec13a400 Merge "Add a mode for cell radios unable to time share" am: c80a5d56db
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1827923

Change-Id: I5ded48c8498c32977adcfe2363599d6cfa246e1b
2021-09-18 12:50:52 +00:00
Chalard Jean
c80a5d56db Merge "Add a mode for cell radios unable to time share" 2021-09-18 12:39:24 +00:00
Chalard Jean
0702f98edc Add a mode for cell radios unable to time share
Upon changing the default SIM card, the radio will create a
new connection to the new subscription. If that subscription
works correctly, the stack will prefer it to the old one as
the new subscription will be marked with a Primary policy
flag it its score.

Normally, at this point the old network lingers to give apps
an opportunity to gracefully migrate their connections. But
with some radios, this may have a dramatic effect on the
performance of the new connection.

This patch introduces a flag so that devices with such radios
can be marked. In this case the stack will move to a degraded
mode and eschew the grace delay for apps and give them a hard
break instead, so that the new network can reach a good
performance immediately. Apps with existing connections will
suffer a worse experience.

If there is a request that can only be served by the old
connection, still keep it, as arguably the user still
expects their MMS be sent on the old connection, even if the
new connection doesn't work well until it's done.

Test: new test in this patch, and add relevant tests in both modes
      also manually change the value of the flag and run
      FrameworksNetTests and CtsNetTestCasesLatestSdk
Bug: 200226979
Change-Id: I4ace82f90e873bf06298cc689bb1d794ed5124bd
2021-09-18 04:03:13 +00:00
Aaron Huang
fed2d0614f Merge "Remove ForceAllNetworkTypes from test" am: f7762c823a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1824632

Change-Id: Ib5ef798b75c473e4e2c62cf295b55e3669508648
2021-09-17 12:25:04 +00:00
Aaron Huang
f7762c823a Merge "Remove ForceAllNetworkTypes from test" 2021-09-17 12:08:59 +00:00
Aaron Huang
952f97c84b Merge "Test a template matches mobile and mobile wildcard" am: 3cbd991ab4
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1784390

Change-Id: Ia33a4d9fb1e543680af7c6a25df619bed80799a9
2021-09-16 10:03:56 +00:00
Aaron Huang
3cbd991ab4 Merge "Test a template matches mobile and mobile wildcard" 2021-09-16 09:42:22 +00:00
markchien
3e14f7df9f Test QosSocketInfo.getNetwork am: 059bfa6149
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1826063

Change-Id: I29e01f008d6dfeb516dc71f7c3cf4637828b2b6c
2021-09-15 11:19:50 +00:00