Commit graph android_packages_modules_Co.../tests/unit/java/com
Message SHA1
Add a unit test for a bug in registerDefaultNetworkCallback.
Currently, when a VPN app calls registerDefaultNetworkCallback,
it will always get its own VPN, even if the VPN app called
VpnService.Builder#addDisallowedApplication to take itself out
of the VPN's UID ranges.

Add a test for the current incorrect behaviour.

Also fix an indentation error elsewhere.

Bug: 195265065
Test: test-only change
Change-Id: Id9648ea71fc7ae10855aa311beeb7975569d17f2

Lorenzo Colitti   commited 2021-08-17 01:36:54 +09:00
bbadec37d2
Merge "Fix a flake in ConnectivityDiagnostics"
Treehugger Robot   authored and   Gerrit Code Review   commited 2021-08-16 09:01:58 +00:00
1ac3e27399
Fix a flake in ConnectivityDiagnostics
Bug: none
Test: ConnectivityServiceTest
Change-Id: I9242226be976e7c346addcbaf7e2b0154a3829f7

Chalard Jean   commited 2021-08-16 16:05:06 +09:00
4da146bd2f
Merge sc-dev-plus-aosp-without-vendor@7634622
Merged-In: I5a33f959c8ae5a34584f57508f392038e44062e7
Change-Id: Ib4e5e75ee8bbe19806bdc2f69590d164fb75774b

Xin Li   commited 2021-08-14 06:31:05 +00:00
3ec4468fb7
Merge "Prevent NPEs when registering/unregistering ConnDiags CBs."
Benedict Wong   authored and   Gerrit Code Review   commited 2021-08-12 20:35:39 +00:00
5805d3cfd2
Remove the @Ignore annotation on testAvoidBadWifi am: 73745baa38 am: 3bac051c7a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1773885

Change-Id: Ibec81bed964cab7f9bc18cf7cabf0b52d0eeb824

Chiachang Wang   authored and   Automerger Merge Worker   commited 2021-08-10 05:41:23 +00:00
8787b2ab68
Remove the @Ignore annotation on testAvoidBadWifi
testAvoidBadWifi could pass without issue. The refactor should
also be done. The test does not need to be ignored now. Remove
the annotation to bring the test coverage back.

Bug: 178071397
Test: atest ConnectivityServiceTest
Change-Id: I5652fa817f16b8c241f1e2066a0b04ad2156a3b7

Chiachang Wang   commited 2021-08-10 05:17:29 +00:00
73745baa38
Merge "Add test for [stop|start]VpnProfile()" into sc-dev am: 2900ffbb5f
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/15359731

Change-Id: Ieb3774e45cacb9c9e2e3ebea1ba55c757d2679e8

Lucas Lin   authored and   Automerger Merge Worker   commited 2021-08-10 02:38:50 +00:00
9e2ffd6a23
Merge "Add test for [stop|start]VpnProfile()" into sc-dev
Lucas Lin   authored and   Android (Google) Code Review   commited 2021-08-10 02:28:24 +00:00
2900ffbb5f
Merge "Use dns resolver v9 in connectivity and set resolverOptions to null." into sc-dev
TreeHugger Robot   authored and   Android (Google) Code Review   commited 2021-08-06 18:35:45 +00:00
4e257a92ca
Merge "Use dns resolver v9 in connectivity and set resolverOptions to null." am: d4c0d59179 am: 29b6cb0288
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1789012

Change-Id: I601a0046b5ae33cee9d267c7a4bdc1ead949ae22

Luke Huang   authored and   Automerger Merge Worker   commited 2021-08-06 17:46:22 +00:00
2bb20e6637
Merge "Use dns resolver v9 in connectivity and set resolverOptions to null."
Luke Huang   authored and   Gerrit Code Review   commited 2021-08-06 17:10:36 +00:00
d4c0d59179
Use dns resolver v9 in connectivity and set resolverOptions to null.
The resolverOptions member of the ResolverParamsParcel has never
been set by AOSP code but was only used by OEMs modifying
DnsManager. Now that DnsManager is mainline code, this is no
longer possible. So the DNS resolver introduces a new
setResolverOptions IPC to allow OEMs to set the options and makes
the resolverOptions nullable.

Make DnsManager set resolverOptions to null, to ensure that when
DnsManager calls setResolverConfiguration, it does not overwrite
any options set by the OEM.

Bug: 194048056
Test: Device boots and has connectivity
Change-Id: I310a79521f5a365e50e2c65e9dd87d9b68f105d7
Merged-In: I310a79521f5a365e50e2c65e9dd87d9b68f105d7

Remi NGUYEN VAN   authored and   Lorenzo Colitti   commited 2021-08-06 22:21:51 +09:00
0ccf3fb461
Use dns resolver v9 in connectivity and set resolverOptions to null.
The resolverOptions member of the ResolverParamsParcel has never
been set by AOSP code but was only used by OEMs modifying
DnsManager. Now that DnsManager is mainline code, this is no
longer possible. So the DNS resolver introduces a new
setResolverOptions IPC to allow OEMs to set the options and makes
the resolverOptions nullable.

Make DnsManager set resolverOptions to null, to ensure that when
DnsManager calls setResolverConfiguration, it does not overwrite
any options set by the OEM.

Bug: 194048056
Test: Device boots and has connectivity
Change-Id: I310a79521f5a365e50e2c65e9dd87d9b68f105d7

Remi NGUYEN VAN   authored and   Lorenzo Colitti   commited 2021-08-06 21:19:38 +09:00
30bebea049
Merge changes Ic33d8976,Ib5bd74d8 into sc-dev
* changes:
  Mock connectivity resources in integration tests
  Add overlay options for no internet notifications

Remi NGUYEN VAN   authored and   Android (Google) Code Review   commited 2021-08-05 07:17:31 +00:00
6c1e049e29
Fix a crash when changing preferences
The crash occurs when some app has more than half its limit
in requests that will need to be moved to some other default
network upon changing the preferences.
This will send the requests for this app over the limit
temporarily when creating new requests for the reevaluated
ones.

While ConnectivityService has a provision for making a
transaction-like addition/removal of requests that is meant
to avoid exactly this kind of crash with the transact()
method on PerUidCounter, the code only transacts on
mSystemNetworkRequestCounter. But these requests are counted
in the mNetworkRequestCounters, which is not part of the
transaction, causing the crash anyway.

To avoid the problem, this patch allows the request counters
to go over the max if and only if the system server is
updating the request counts for a UID other than its own.
This should allow only the case where ConnectivityService is
moving the requests over to the new per-uid default, while
keeping the exception when registering from an app (then the
calling UID is not the system server), or when the system
server registers its own requests (then the UID inside the
request is that of the system server).

A much better solution than this patch would be to completely
eliminate the transact() method by somehow unregistering the
old ones before creating the new ones.
However this would be a much bigger and difficult patch than
this, and much more dangerous, because callers depend on the
list of requests to find out the old requests to remove, so
they have to be created first.

Another possible clean solution would be to count the
requests not in the NRI constructor, but later. This would be
more error-prone though because it would be very easy to
create an NRI without counting it.

Bug: 192470012
Test: ConnectivityServiceTest. Improve tests so they catch
      this case.

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1781202

Merged-In: Ia482e6fbf2bf300ce6cbaca72810d394ed201b98
Change-Id: I6744d2f60d6bd664f048b532a58461c110a5b7fe
(cherry picked from commit 916aeb7b0d)

Chalard Jean   commited 2021-08-05 10:33:12 +09:00
5234f3acc6
Merge "Fix a crash when changing preferences" am: aeb051b962 am: 916aeb7b0d
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1781202

Change-Id: I39a8e756c73c675fc0eb74f3d570d128f6ecf390

Chalard Jean   authored and   Automerger Merge Worker   commited 2021-08-04 12:48:02 +00:00
faa5bad6c3
Merge "Fix a crash when changing preferences"
Chalard Jean   authored and   Gerrit Code Review   commited 2021-08-04 12:23:52 +00:00
aeb051b962
Add overlay options for no internet notifications
Add an option to display the no internet dialog directly instead of
showing a notification when the notification would have been high
priority (typically when the network was explicitly selected). This is
disabled by default, but allows device manufacturers to use a slightly
more disruptive UX to ensure that the user is aware that the network has
no connectivity, and can take action.

Also add an option to show the same notification as "no internet"
instead of the "partial connectivity" notification. This is also
disabled by default, but allows device manufacturers to use the "no
internet" text if they feel that "partial connectivity" text is hard
to understand for the user.

Bug: 193847396
Test: atest NetworkNotificationManagerTest
Original-Change: https://android-review.googlesource.com/1782433
Merged-In: Ib5bd74d8cf973bf70d373dd63648c178fae0ebae
Change-Id: Ib5bd74d8cf973bf70d373dd63648c178fae0ebae

Remi NGUYEN VAN   commited 2021-08-04 08:20:24 +00:00
893494289b
Merge "Add overlay options for no internet notifications" am: 4f39cacbc3 am: aca228c07a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1782433

Change-Id: I87238b54c517a4efb11bca6e23cc2484b66f217e

Remi NGUYEN VAN   authored and   Automerger Merge Worker   commited 2021-08-04 08:08:20 +00:00
f51a0ded84
Add overlay options for no internet notifications
Add an option to display the no internet dialog directly instead of
showing a notification when the notification would have been high
priority (typically when the network was explicitly selected). This is
disabled by default, but allows device manufacturers to use a slightly
more disruptive UX to ensure that the user is aware that the network has
no connectivity, and can take action.

Also add an option to show the same notification as "no internet"
instead of the "partial connectivity" notification. This is also
disabled by default, but allows device manufacturers to use the "no
internet" text if they feel that "partial connectivity" text is hard
to understand for the user.

Bug: 193847396
Test: atest NetworkNotificationManagerTest
Change-Id: Ib5bd74d8cf973bf70d373dd63648c178fae0ebae

Remi NGUYEN VAN   commited 2021-08-04 11:23:03 +09:00
5dc6ca0318
Merge "Add a small comment to a test" am: 8ba4b12dff am: 9529651ecb
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1779754

Change-Id: Iff5cd49863772e5ed1d7e0cbc2f3161fc9d3b753

Treehugger Robot   authored and   Automerger Merge Worker   commited 2021-08-03 15:44:23 +00:00
d266885202
Merge "Add a small comment to a test"
Treehugger Robot   authored and   Gerrit Code Review   commited 2021-08-03 15:00:26 +00:00
8ba4b12dff
Merge "Mock DisplayMetrics in NotificationManagerTest"
Treehugger Robot   authored and   Gerrit Code Review   commited 2021-08-03 05:09:14 +00:00
b1263d0363
Merge "Merge NetdServiceMonitor into NetdMonitor." am: 44021f4a17 am: 7a1dfa1238
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1767648

Change-Id: Ia6d652a9aa23ade3f9d24fef9f05676549fb1d89

Treehugger Robot   authored and   Automerger Merge Worker   commited 2021-08-02 16:37:56 +00:00
e89c417ce3
Mock DisplayMetrics in NotificationManagerTest
DisplayMetrics are used in some downstream branches and need to be
mocked. This avoids merge conflicts in NetworkNotificationManagerTest.

Partial cherry-pick of change IDs:
I35d28c8df341dbbac2774026c6ca749e296c0482
I1aeed1c79e4a829d8829eb08224f9b21fafc50fe

Test: atest NetworkNotificationManagerTest
Bug: 176239013
Merged-In: I3c2563d4ae4e3715d0c6270344ba8f7ef067872f
Change-Id: I118ec1af615aef36293bf0b480389f766122ccab

Remi NGUYEN VAN   commited 2021-08-02 19:03:15 +09:00
a944e70daa
Fix a crash when changing preferences
The crash occurs when some app has more than half its limit
in requests that will need to be moved to some other default
network upon changing the preferences.
This will send the requests for this app over the limit
temporarily when creating new requests for the reevaluated
ones.

While ConnectivityService has a provision for making a
transaction-like addition/removal of requests that is meant
to avoid exactly this kind of crash with the transact()
method on PerUidCounter, the code only transacts on
mSystemNetworkRequestCounter. But these requests are counted
in the mNetworkRequestCounters, which is not part of the
transaction, causing the crash anyway.

To avoid the problem, this patch allows the request counters
to go over the max if and only if the system server is
updating the request counts for a UID other than its own.
This should allow only the case where ConnectivityService is
moving the requests over to the new per-uid default, while
keeping the exception when registering from an app (then the
calling UID is not the system server), or when the system
server registers its own requests (then the UID inside the
request is that of the system server).

A much better solution than this patch would be to completely
eliminate the transact() method by somehow unregistering the
old ones before creating the new ones.
However this would be a much bigger and difficult patch than
this, and much more dangerous, because callers depend on the
list of requests to find out the old requests to remove, so
they have to be created first.

Another possible clean solution would be to count the
requests not in the NRI constructor, but later. This would be
more error-prone though because it would be very easy to
create an NRI without counting it.

Bug: 192470012
Test: ConnectivityServiceTest. Improve tests so they catch
      this case.
Change-Id: Ia482e6fbf2bf300ce6cbaca72810d394ed201b98

Chalard Jean   commited 2021-07-30 19:10:07 +09:00
9473c984b8
Merge NetdServiceMonitor into NetdMonitor.
- This is a no-op refactor for reducing duplicated code.
- Add a global NetdMonitor which can use for every test.
- Statically import INetd permissions.

Bug: 189705071
Test: atests FrameworksNetTests
Change-Id: I78f4b46cce16ea7e25b67cf2e9470cb09f1c3e75

paulhu   commited 2021-07-29 08:33:57 +00:00
c9ebbd1f88
Add test for [stop|start]VpnProfile()
Ignore-AOSP-First: It's a part of security patches.
Bug: 191382886
Test: atest FrameworksNetTests:VpnTest
Change-Id: Ie9c0c626f404efe0dd6dc79ca891639bc224090a

lucaslin   authored and   Lucas Lin   commited 2021-07-29 05:26:47 +00:00
a9ef5a9252
Add a small comment to a test
Addresses comments on aosp/1771187

Test: comment-only change
Change-Id: I837a019708919b66b8801c37abd5aacb1d7c249f

Chalard Jean   commited 2021-07-28 16:43:29 +09:00
dfd850f5f7
Fix a possible system server crash
The scenario is as follows : an app registers a network callback,
then unregisters it and dies immediately after. In this scenario,
the system server will receive a notification of the binder death
and enqueue a call to handleRemoveNetworkRequest. If the callback
unregister message has been process first, this call would result
in unlinkToDeath being called twice on the same Binder, crashing.
This patch fixes the problem by using handleReleaseNetworkRequest
instead of Remove, which looks up the NRI in a map on the handler
thread before calling Remove, returning without doing anything if
the NRI has already been removed.

Test: ConnectivityServiceTest
Test: New test for this
Bug: 194394697
Merged-In: I82a28c37450146838410bf5a059aac295a985fca
Change-Id: Iddab205cf2754d326be816e6e8e92c2cc0b95771
(cherry picked from commit d79bd5c622)

Chalard Jean   commited 2021-07-28 04:56:19 +00:00
0bad224c44
Merge "Fix a possible system server crash" am: 51176d0a67 am: d79bd5c622
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1771187

Change-Id: Id71b3d6e530a053b1950ed9cecbf74a83b36b4e8

Chalard Jean   authored and   Automerger Merge Worker   commited 2021-07-27 05:12:15 +00:00
0a5b0b19e5
Merge "Fix a possible system server crash"
Chalard Jean   authored and   Gerrit Code Review   commited 2021-07-27 04:37:43 +00:00
51176d0a67
Fix a possible system server crash
The scenario is as follows : an app registers a network callback,
then unregisters it and dies immediately after. In this scenario,
the system server will receive a notification of the binder death
and enqueue a call to handleRemoveNetworkRequest. If the callback
unregister message has been process first, this call would result
in unlinkToDeath being called twice on the same Binder, crashing.
This patch fixes the problem by using handleReleaseNetworkRequest
instead of Remove, which looks up the NRI in a map on the handler
thread before calling Remove, returning without doing anything if
the NRI has already been removed.

Test: ConnectivityServiceTest
Test: New test for this
Bug: 194394697
Change-Id: I82a28c37450146838410bf5a059aac295a985fca

Chalard Jean   commited 2021-07-27 04:37:29 +00:00
5bcc838f4e
Merge "Rename PREFERENCE_PRIORITY_* to PREFERENCE_ORDER_*" am: 0e3b1e0b57 am: 02c83293d6
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1764732

Change-Id: I59b79a72ae8237997eae4b23b1a91e2cb40674a8

Paul Hu   authored and   Automerger Merge Worker   commited 2021-07-26 08:35:49 +00:00
deaebe4818
Merge "Rename PREFERENCE_PRIORITY_* to PREFERENCE_ORDER_*"
Paul Hu   authored and   Gerrit Code Review   commited 2021-07-26 08:12:42 +00:00
0e3b1e0b57
Merge "Modify Nsd{Service,Manager}Test to conform to its change" into sc-dev am: 3c20df39d0
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/15320525

Change-Id: Ifd8002745d97881414c29faa05820328e4833ae6

Luke Huang   authored and   Automerger Merge Worker   commited 2021-07-22 03:26:43 +00:00
227f003cbe
Modify Nsd{Service,Manager}Test to conform to its change
Test: atest NsdManagerTest NsdServiceTest
Bug: 191844585
Change-Id: I3cf658498bef5755dcb01127a94fff913b6e6298
Ignore-AOSP-First: To avoid the side effect caused by automerger.

Luke Huang   commited 2021-07-21 08:02:26 +00:00
952a55c62d
Merge "Fix a flake with mocking." am: 527f040944 am: ec050a37ab
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1762391

Change-Id: Ie146448d14695a88688a37e5993504d527de9404

Treehugger Robot   authored and   Automerger Merge Worker   commited 2021-07-19 12:51:20 +00:00
19eaa44e9f
Merge "Fix a flake with mocking."
Treehugger Robot   authored and   Gerrit Code Review   commited 2021-07-19 12:16:18 +00:00
527f040944
Merge "No-op cleanup" am: 21592b0d93 am: 866b9c4480
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1769285

Change-Id: Ib19a5d93e0b4e2f305a80ccf8841a36a5e7bda74

Treehugger Robot   authored and   Automerger Merge Worker   commited 2021-07-16 16:38:19 +00:00
fa45b598d5
No-op cleanup
Test: atest ConnectivityServiceTest
Change-Id: Ic07c94785d97bd654ffce960e8bc2652c2dbc3d6

Chalard Jean   commited 2021-07-16 12:02:22 +09:00
6d8f2fbf99
Rename PREFERENCE_PRIORITY_* to PREFERENCE_ORDER_*
Follow up aosp/1719390, change PREFERENCE_PRIORITY_* to
PREFERENCE_ORDER_*.

Bug: 171872461
Test: atest FrameworksNetTests
Change-Id: Ic96ac7bc3dba74a2020014fb83e1cb302520888c

paulhu   commited 2021-07-15 14:22:41 +08:00
48291863d7
Fix a flake with mocking.
The hypothesis here is that some other thread is using
the mock between the call to when() and the call to
.thenReturn() a few lines above the failure. It's not
clear this is really the reason, but using this syntax
is safer anyway, so whether it fixes the issue or not
this is a good change.

Test: m FrameworksNetTests
Change-Id: I501d2ec8e794c67a53d7c84e290e4cc63481472d

Chalard Jean   commited 2021-07-12 15:30:21 +09:00
6519c179bd
Merge "Remove hidden ArrayUtils usage in test" am: 946da61e70 am: 3c5a0f7de9
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1760689

Change-Id: I9a96b7cbef135a86d13171cd5b1edfc69b68c2e0

Remi NGUYEN VAN   authored and   Automerger Merge Worker   commited 2021-07-12 02:50:20 +00:00
92b099b4e7
Merge "Remove hidden ArrayUtils usage in test"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2021-07-12 02:21:12 +00:00
946da61e70
Remove hidden ArrayUtils usage in test
Internal utils are generally jarjared by connectivity jarjar rules, but
ArrayUtils is not actually statically linked into the tests, so this
makes the ConnectivityCoverageTests fail. FrameworksNetTests has been
fine because it does not use jarjar, but does not exercise updated code
because of that.

Remove usage of the hidden utility, as there are reasonable alternatives
with non-hidden APIs that avoid other breakages long-term.

Bug: 187935317
Test: atest ConnectivityCoverageTests:ConnectivityServiceTest
Change-Id: I8ed85b941c3d1028771a5ac33196b1509a95789d

Remi NGUYEN VAN   commited 2021-07-09 18:52:51 +09:00
61cc1ac9bd
Prevent NPEs when registering/unregistering ConnDiags CBs.
This CL updates ConnectivityService to do null checks on received
parameters when registering and unregistering ConnectivityDiagnostics
callbacks (and also when simulating Data Stalls).

Bug: 181583568
Test: atest ConnectivityServiceTest ConnectivityDiagnosticsManagerTest
Change-Id: I7f297f10bf8d379a5d33ca5e11ca1e12132ba3a5

Benedict Wong   commited 2021-07-08 23:45:59 -07:00
30d3ba047e
Remove exclusivity restriction of multiple preferences
- Each network preference has been assigned a priority value so
  that netd can know which uid range rule has higher priority. So
  remove the restriction that all network preferences are
  exclusive.
- Add priority check when getting request for uid.

Bug: 171872461
Test: atest FrameworksNetTests
(cherry-pick from ag/14731887)
Merged-In: I6912db753c8b4a194aa7af92b01ca6dcfec10d8b

Change-Id: I6912db753c8b4a194aa7af92b01ca6dcfec10d8b

paulhu   commited 2021-07-07 23:06:43 +08:00
aa0743d7c4
Merge "Remove exclusivity restriction of multiple preferences" into sc-dev am: fd301c05c5
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/14731887

Change-Id: I7df8b49e044891f69a2af7477ab9b8fab0353b50

Paul Hu   authored and   Automerger Merge Worker   commited 2021-07-07 14:46:32 +00:00
cebf317bef