Commit graph android_packages_modules_Co.../tests/net/java
Message SHA1
IP connectivity metrics: fix tests after proto update
Update to ipconnectivity.proto in commit
6d2f506bfd788a3685292d404dc9d82a27357cfe broke the associated unit
tests (Change-Id: I4cf5b95956df721aecd63fddfb026a7266c190b9)

Bug: 34901696
Bug: 65439160
Test: runtest frameworks-net
Merged-In: I57a6bad8a9836b1c45690c4589b416786ce1dfa0

(cherry picked from commit 68d99ea1af)

Change-Id: I98b23b2208bbd7d12237fcb000f3cf10c53d9e55

Hugo Benichi   commited 2017-09-07 22:17:18 +09:00
8bebf411cc
Always add local subnet routes to the interface's routing table
For some networks such as mobile data connections, its LinkProperties
does not contain routes for the local subnet so no such route is added
to the interface's routing table. This can be problematic especially
if the device is in VPN lockdown mode where there exists high-priority
PROHIBIT routing rule which in turn blocks the network's default gateway
route from being added (next hop address hitting the prohibit rule).

We fix this by patching LinkProperties to always include direct connected routes
when they are received by ConnectivityService. This has the added advantage that
when apps get LinkProperties, they see the directly connected routes as well.

Bug: 63662962
Test: runtest frameworks-core -c android.net.LinkPropertiesTest
Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest
Test: Start with device with mobile data, set up ics-OpenVPN in always-on
      lockdown mode. Turn off mobile data then turn it back on, observe
      mobile data connectivity is restored and VPN successfully reconnects.
Change-Id: I35b614eebccfd22c4a5270f40256f9be1e25abfb

Rubin Xu   commited 2017-09-07 10:50:20 +01:00
57b437a451
Merge "Nat464Xlat: correct racefree teardown"
Hugo Benichi   authored and   Gerrit Code Review   commited 2017-09-05 12:12:02 +00:00
d9ca494a43
Nat464Xlat: correct racefree teardown
This patch relays the NetworkBaseObserver notifications about nat
464xlat stacked interfaces onto the ConnectivityService handler.

This allows to process interface up and down notifications in the
same thread context and eliminates several races:

  - NPE risk due to race between fixupLinkProperties called on
    ConnectivityService thread and interfaceRemoved called on
    NetworkManagementService thread.
  - stale LinkProperties pointer reads in both NetworkBaseObserver
    callbacks not called on ConnectivityService handler.
  - removes the race between stop() and interfaceRemoved().
  - removes superfluous LinkProperties notifications when stop() is
    called before the stacked interface goes up.

The teardown procedure logic common to stop() and interfaceRemoved() is
put into enterStoppedState() and enterIdleState().

This allows to distinguish and correctly handle the following teardown
scenarios:
 - an IPv4 appears -> ConnectivityService calls Nat464Xlat#stop()
                   -> Nat464Xlat calls stopClatd
                   -> clatd stops
                   -> if the stacked interface was up, it is removed
                   -> Nat464Xlat#interfaceRemoved() is triggered and
                      a LinkProperties update is sent.

 - network disconnects -> ConnectivityService calls Nat464Xlat#stop()
                       -> Nat464Xlat calls stopClatd
                       -> clatd stops
                       -> if the stacked interface was up, it is removed
                       -> Nat464Xlat#interfaceRemoved() is triggered and
                          a LinkProperties update is sent.

 - clatd crashes or exit -> Nat464Xlat#interfaceRemoved() is triggered
                         -> Nat464Xlat unregisters itself as a network
                            observer
                         -> ConnectivityService is updated about the
                            stacked interface missing, and restarts
                            Nat464Xlat if needed.

Note that the first two scenarios have two cases: stop() can be called
before the notification for the stacked interface going up (STARTED), or
after (RUNNING). In the first case, Nat464Xlat must unregister
immediately as a network observer to avoid leaks.

This patch also:
  - removes/simplifies comments related to the threading model which
    are no obsolete.
  - extract clatd management logic from ConnectivityService into
    NetworkAgentInfo
  - add new unit tests where there was none before.

Bug: 62918393
Bug: 62997041
Bug: 64571917
Bug: 65225023
Test: runtest frameworks-net
Change-Id: I27221a8a60fd9760b567ed322cc79228df877e56

Hugo Benichi   commited 2017-09-05 15:33:55 +09:00
1dd94a2215
Network Service Discovery test: properly release resources
Bug: 32561414
Bug: 62918393
Bug: 62044295
Test: runtest frameworks-net
Change-Id: If23993b5e391947ecbdc01677f0a643144794b2b

Hugo Benichi   commited 2017-09-02 14:54:29 +09:00
175e18ff4e
Make NetworkManagementServiceTest pass again.
1. Mock the service manager so that NMS can fetch mock versions
   of INetd and IBatteryStats.
2. Call LocalServices.removeServiceForTest to avoid a duplicate
   service registration error. // check this
3. Change the timeout from 100ms to 200ms, as otherwise the tests
   that check for IfaceClass fail.
4. Convert NetworkManagementServiceTest to JUnit 4.
5. Move NetworkManagementServiceTest to tests/net

Bug: 29337859
Bug: 32163131
Bug: 32561414
Bug: 62918393
Test: runtest frameworks-net
Change-Id: Ic7371b427b35809ccd446addf35c9d8ae99ccfd3

Lorenzo Colitti   authored and   Hugo Benichi   commited 2017-08-23 09:49:05 +09:00
705b7ac973
Merge changes I325b13d5,I89719fe7
am: 58049d845f

Change-Id: Iaced543ab17ea87c8f701975764d957bc1b17fc7

Lorenzo Colitti   authored and   android-build-merger   commited 2017-08-19 03:15:08 +00:00
9628e69cf7
Merge changes I325b13d5,I89719fe7
* changes:
  Add tether offload traffic to interface stats as well.
  Tell the system when tethering offload hits a limit.

Treehugger Robot   authored and   Gerrit Code Review   commited 2017-08-19 03:05:14 +00:00
58049d845f
Add tether offload traffic to interface stats as well.
Currently, we only count add tethering traffic to per-UID
stats, but not to total data usage (i.e., dev and XT stats). This
is correct for software tethering, because all software forwarded
packets are already included in interface counters, but it is
incorrect for hardware offload, because such packets do not
increment interface counters.

To fix this:
1. Add an argument to ITetheringStatsProvider#getTetherStats to
   indicate whether per-UID stats are requested. For clarity,
   define integer constants STATS_PER_IFACE and STATS_PER_UID
   to represent these operations.
2. Make NetdTetheringStatsProvider return stats only if per-UID
   stats are requested. (Otherwise tethering traffic would be
   double-counted).
3. Make OffloadController's stats provider return the same
   stats regardless of whether per-UID stats were requested or
   not.
4. Make NetworkStatsService add non-per-UID tethering stats to
   the dev and XT snapshots. The per-UID snapshots were already
   correctly adding in per-UID stats.

(cherry picked from commit 5356a35c3bcfcdf2d184c620af6bfbf9bddf35c5)

Bug: 29337859
Bug: 32163131
Test: runtest frameworks-net
Test: runtest frameworks-telephony
Change-Id: I325b13d50e88841dfb0db4c35e7e27f163ee72fe
Merged-In: I4e8e923d68dce1a4a68608dbd6c75a91165aa4ee

Lorenzo Colitti   commited 2017-08-19 10:12:05 +09:00
2ce1756ae0
Merge "Add convenience methods to IpPrefix and LinkAddress"
am: 813f81f2f3

Change-Id: I6d3f3c50eaec44e3a0787e849ab28e89f6f4a72d

Hugo Benichi   authored and   android-build-merger   commited 2017-08-16 14:49:27 +00:00
27bdc7373a
Add convenience methods to IpPrefix and LinkAddress
Also moving relevant test files into tests/net as part of runtest
framworks-net.

Also removes testHashCode in LinkAddress() because this test relies on
the assumption that hashCode() is stable across releases or jdk
versions, which is absolutely not true.

This creates maintenance work for little benefit since hashCode is
already tested as part of the equality test.

For instance this test is now broken because hashing for InetAddress
changed.

Bug: 62988545
Bug: 62918393
Test: runtest frameworks-net, added coverage in tests
Change-Id: I695bc3f0e801bf13bc4fc0706565758f12b775b4

Hugo Benichi   commited 2017-08-16 21:42:21 +09:00
3054e10286
Merge "NetworkCapabilities: fix describeImmutableDifferences"
am: 7575ec2240

Change-Id: If38efacdeec8476880835657938e435f9b598525

Hugo Benichi   authored and   android-build-merger   commited 2017-08-05 00:54:43 +00:00
ec11d07dc0
NetworkCapabilities: fix describeImmutableDifferences
This patch fixes the mask used in describeImmutableDifferences which did
not correctly turn NET_CAPABILITY_NOT_METERED into bit flag.

Bug: 63326103
Test: added unit tests, runtest frameworks-net
Change-Id: Ib6b390b1daef5912859302692af7dcd6cfd3e39a

Hugo Benichi   commited 2017-08-04 15:17:40 +09:00
66bdf0aa16
Merge "NetworkNotificationManager: correctly handle existing notifications"
am: 3451fb6156

Change-Id: I4432f66067ea1ab02e1d2dfe42530bcdafa52df6

Hugo Benichi   authored and   android-build-merger   commited 2017-07-27 14:43:48 +00:00
d7c56713f5
NetworkNotificationManager: correctly handle existing notifications
This patch corrects a regression added by commit 51727428fc that did
not take into account the case of multiple notifications shown for a
single network id. Given how network notifications are triggered, it can
happen that NO_INTERNET and SIGN_IN notifications are both triggered for
the same network when captive portal detection is slow.

Contrary to the situation before commit 51727428fc, a notification
priority order is introduced so that SIGN_IN always overrides
NO_INTERNET, and NO_INTERNET is ignored if SIGN_IN is already present.

Bug: 63676954
Bug: 62503737
Test: runtest frameworks-net, added new unit tests
Change-Id: Ib8658601e8d4dc6c41b335ab7dd8caa0cccd9531

Hugo Benichi   commited 2017-07-27 21:20:20 +09:00
38dfb4ed75
Merge "Add unit test for IpSecService"
am: 66c2152a1a

Change-Id: I16fb89239e641ac39a8a7adeafd72b7fe03935ed

Di Lu   authored and   android-build-merger   commited 2017-07-20 07:36:19 +00:00
74a670dd15
Merge "Add unit test for IpSecService"
Di Lu   authored and   Gerrit Code Review   commited 2017-07-20 07:27:16 +00:00
66c2152a1a
Merge "Add unit test for IpSecManager"
am: b4aad41c78

Change-Id: I56c336eb8234b31154b6a7defd95ce76ea0800d8

Di Lu   authored and   android-build-merger   commited 2017-07-20 05:52:10 +00:00
6eb882dbbb
Add unit test for IpSecService
Test: runtest frameworks-net

Bug:38259578
Change-Id: I4a049d5fdec79e36692e3b12306bd0758c19ad75

ludi   authored and   Di Lu   commited 2017-07-20 04:26:24 +00:00
444da83c9b
Add unit test for IpSecManager
Test: runtest frameworks-net

Bug:38259578
Change-Id: Idb76aab899ccb7145bef2b7dce36e115c25fa6ca

ludi   commited 2017-07-19 18:59:12 -07:00
05f1f44369
Merge "ConnectivityServiceTest: fix testNetworkInfoOfTypeNone"
am: 8dc06d90ea

Change-Id: I4be1d2ce67871c1e01364beca886fdd3af374321

Hugo Benichi   authored and   android-build-merger   commited 2017-07-19 08:04:48 +00:00
871e4670a2
ConnectivityServiceTest: fix testNetworkInfoOfTypeNone
This patch fixes a couple of flakyness issues with
testNetworkInfoOfTypeNone. It also fixes some typos and naming issues.

Bug: 62918393, 62918393
Test: runtest frameworks-net
Change-Id: I1c56557ab113d3ef57dbc06a6e882634d03c5b09

Hugo Benichi   commited 2017-07-19 15:08:49 +09:00
42ba4ec976
Merge "ConnectivityManager: allow usage of TYPE_NONE"
am: ffcaee218d

Change-Id: I72dbd17db63bd7b8637e82f5cdcfec3bf1482962

Hugo Benichi   authored and   android-build-merger   commited 2017-07-05 14:33:35 +00:00
fab5b13b83
Merge "ConnectivityServiceTest: more informative assert failures"
am: 9951460998

Change-Id: Iaa55014ae4c2f4927059735c349c40ada836b79b

Hugo Benichi   authored and   android-build-merger   commited 2017-07-05 14:19:33 +00:00
598e36fd6a
Merge "ConnectivityServiceTest: eliminate remaining sleep()"
am: 5b906a4ece

Change-Id: Ib1e31c2b8999d07b20ef4cef8e70d851f93df6e5

Hugo Benichi   authored and   android-build-merger   commited 2017-07-05 12:35:01 +00:00
6c65982d2b
ConnectivityManager: allow usage of TYPE_NONE
This patch allows to use TYPE_NONE for the legacy network type variable
of NetworkInfo. This usage is "safe" with respect to legacy APIs using
network types as most of them already returns null or do nothing for
TYPE_NONE.

Of the existing APIs in ConnectivityManager that accept a network type
argument, those which were already returning null or doing nothing for
TYPE_NONE are:
  getNetworkInfo(int)
  getNetworkForType(int)
  stopUsingNetworkFeature(int, String)
  networkCapabilitiesForType(int)
  requestRouteToHostAddress(int, InetAddress)
  reportInetCondition(int, int)
  isNetworkSupported(int)
  getLinkProperties(int)

Only setProvisioningNotificationVisible needs an additional guard
against TYPE_NONE.

Bug: 30088447
Bug: 62844794
Test: runtest frameworks-net
Change-Id: I112596fcd03d3c2cd42a2a84d265adb38e3944bb

Hugo Benichi   commited 2017-07-05 21:30:52 +09:00
37d5c3cb21
ConnectivityServiceTest: more informative assert failures
Bug: 62918393
Test: runtest frameworks-net
Change-Id: If87315ef7cba6380596f48b92c7e0f6eeccc8368

Hugo Benichi   commited 2017-07-05 21:30:10 +09:00
6b1d01e117
ConnectivityServiceTest: eliminate remaining sleep()
ConnectivityServiceTest was still using sleep() in a few places although
these were unnecessary:
  - in testSatisfiedThenLostNetworkRequestDoesNotTriggerOnAvailable(),
    expectNoCallback() and expectAvailableCallback() already include
    waitForIdleHandler calls that drain the message queues and make
    sleep no-ops.
  - in testTimedoutAfterUnregisterdNetworkRequest, the sleeps were
    introduced before unregisterNetworkCallback was changed to have a
    synchronous effect for callback unregistration, therefore the sleep
    becomes simply non-sensical. To reflect this the name of the method
    is also changed.

Bug: 62918393
Test: runtest frameworks-net
Change-Id: I7b701ecf5846a5e1890e86107b8d2544b419ce44

Hugo Benichi   commited 2017-07-05 16:07:57 +09:00
d148700cd0
Merge "Revert "ConnectivityManager: allow usage of TYPE_NONE""
am: 613b73cac8

Change-Id: I49221522c1a9a6e7d4ae72529c1a47b736e26a39

Roland Levillain   authored and   android-build-merger   commited 2017-07-04 11:31:30 +00:00
0d0c37da2a
Merge "Revert "ConnectivityServiceTest: more informative assert failures""
am: a03e68e3e9

Change-Id: Ie61051984a1b6efbb0b19754ce0fb99024ab296a

Roland Levillain   authored and   android-build-merger   commited 2017-07-04 11:24:25 +00:00
2654f7c646
Merge "Revert "ConnectivityServiceTest: eliminate remaining sleep()""
am: 374ad24705

Change-Id: If210f213c7840c218d5e847667c7613d53f86661

Roland Levillain   authored and   android-build-merger   commited 2017-07-04 11:22:32 +00:00
08443dc3d6
Revert "ConnectivityManager: allow usage of TYPE_NONE"
This CL is breaking some internal builds.

This reverts commit 0bc85784a8.

Change-Id: Ie79214808d84c73f54a525f515b4c90a3fb23542

Roland Levillain   commited 2017-07-04 11:14:03 +00:00
5a58f9da60
Revert "ConnectivityServiceTest: more informative assert failures"
CL https://android-review.googlesource.com/#/c/420720/ is
breaking several internal builds, and CL
https://android-review.googlesource.com/#/c/422480/ must
be reverted beforehand.

This reverts commit bde57bd251.

Change-Id: I5883409452d39e1834e183aa7b5ccdbf14291ca5

Roland Levillain   commited 2017-07-04 11:11:35 +00:00
d91096e549
Merge "Revert "ConnectivityServiceTest: eliminate remaining sleep()""
Roland Levillain   authored and   Gerrit Code Review   commited 2017-07-04 11:11:09 +00:00
374ad24705
Revert "ConnectivityServiceTest: eliminate remaining sleep()"
CL https://android-review.googlesource.com/#/c/420720/ is
breaking several internal builds, and CL
https://android-review.googlesource.com/#/c/422481/ must
be reverted beforehand.

This reverts commit 638073b483.

Change-Id: If0b196b6860c4087a05b28770469d7850a76fd37

Roland Levillain   commited 2017-07-04 11:10:06 +00:00
455db172a9
Merge "ConnectivityServiceTest: eliminate remaining sleep()"
am: bd5e242d96

Change-Id: I31a8f64b4ee37a58bc83c08251d949f44cc26fd4

Hugo Benichi   authored and   android-build-merger   commited 2017-07-04 09:43:01 +00:00
556a005a30
Merge changes I90c211dc,I4455f272
am: 6cc4ed727e

Change-Id: I502d978ff636a00979d2083c39381bf600d3d6da

Hugo Benichi   authored and   android-build-merger   commited 2017-07-04 09:35:51 +00:00
1ac5f64000
Merge "ConnectivityServiceTest: eliminate remaining sleep()"
Treehugger Robot   authored and   Gerrit Code Review   commited 2017-07-04 09:25:53 +00:00
bd5e242d96
Merge changes I90c211dc,I4455f272
* changes:
  ConnectivityServiceTest: more informative assert failures
  ConnectivityManager: allow usage of TYPE_NONE

Treehugger Robot   authored and   Gerrit Code Review   commited 2017-07-04 09:22:07 +00:00
6cc4ed727e
ConnectivityServiceTest: eliminate remaining sleep()
ConnectivityServiceTest was still using sleep() in a few places although
these were unnecessary:
  - in testSatisfiedThenLostNetworkRequestDoesNotTriggerOnAvailable(),
    expectNoCallback() and expectAvailableCallback() already include
    waitForIdleHandler calls that drain the message queues and make
    sleep no-ops.
  - in testTimedoutAfterUnregisterdNetworkRequest, the sleeps were
    introduced before unregisterNetworkCallback was changed to have a
    synchronous effect for callback unregistration, therefore the sleep
    becomes simply non-sensical. To reflect this the name of the method
    is also changed.

Bug: 62918393
Test: runtest frameworks-net
Change-Id: I78426665670f702304212753f417b3d5a8a2c107

Hugo Benichi   commited 2017-07-04 16:23:06 +09:00
638073b483
ConnectivityServiceTest: more informative assert failures
Bug: 62918393
Test: runtest frameworks-net
Change-Id: I90c211dc6d6262475924ecabc2863c47aec5a0b9

Hugo Benichi   commited 2017-07-04 16:23:05 +09:00
bde57bd251
ConnectivityManager: allow usage of TYPE_NONE
This patch allows to use TYPE_NONE for the legacy network type variable
of NetworkInfo. This usage is "safe" with respect to legacy APIs using
network types as most of them already returns null or do nothing for
TYPE_NONE.

Of the existing APIs in ConnectivityManager that accept a network type
argument, those which were already returning null or doing nothing for
TYPE_NONE are:
  getNetworkInfo(int)
  getNetworkForType(int)
  stopUsingNetworkFeature(int, String)
  networkCapabilitiesForType(int)
  requestRouteToHostAddress(int, InetAddress)
  reportInetCondition(int, int)
  isNetworkSupported(int)
  getLinkProperties(int)

Only setProvisioningNotificationVisible needs an additional guard
against TYPE_NONE.

Bug: 30088447
Bug: 62844794
Test: runtest frameworks-net
Change-Id: I4455f2726d06406047086368628c1f253d854d8d

Hugo Benichi   commited 2017-07-04 16:22:59 +09:00
0bc85784a8
Merge "Networking unit tests: fix some flaky tests"
am: 501bae6492

Change-Id: I6815e732f334d11208ff12af4023912593d96499

Hugo Benichi   authored and   android-build-merger   commited 2017-07-03 09:35:06 +00:00
c6121a13ea
Networking unit tests: fix some flaky tests
- less strict regex for SharedLogTest: the subsecond part of the
   timestamp can have 0, 1, 2 or 3 digits.
 - refactor NetworkStatsServiceTest and NetworkStatsObserversTest to use
   waitForIdleHandler facility of ConnectivityServiceTest.
   NetworkStatsServiceTest was using a flaky custom version of
   waitForIdleHandler.

Bug: 62918393
Bug: 32561414
Test: runtest frameworks-net
Change-Id: I634acfb5f4fe1bd5267e3f14b9f645edc32d5d12

Hugo Benichi   commited 2017-07-03 16:29:01 +09:00
8c8a164d2f
Merge "Fix race condition in NsdManagerTest" am: f2383db747 am: 2dfb494827
am: ba82d646a6

Change-Id: I7efa4f92838428f69a6a7a9fa767fefa47246f69

Hugo Benichi   authored and   android-build-merger   commited 2017-05-31 13:25:53 +00:00
067c12c844
Fix race condition in NsdManagerTest
NsdManagerTest relies on the lastMessage variable to assert the
connection of a client to the service. The asserts in test are done on a
different thread, although the variable was not qualified volatile,
which creates the chance to read a stale value. This patch fixes this
race by marking the variable volatile.

Bug: 32561414
Bug: 62044295
Test: NsdManagerTest works
Change-Id: I0bc2cd8059c6ff8b78a2dda0ba8d6bc7e13ef951

Hugo Benichi   commited 2017-05-31 15:35:54 +09:00
4e0d0e2f7b
Merge "ConnectivityServiceTest: more tweaks to testRequestBenchmark" am: 76efbb30f5 am: 5f046cb614
am: 7bbdfcd8eb

Change-Id: I96c39ca1899768d039a108426fb04655aaf8d55f

Hugo Benichi   authored and   android-build-merger   commited 2017-05-31 04:10:03 +00:00
1595d96117
ConnectivityServiceTest: more tweaks to testRequestBenchmark
Recent continuous testing runs indicates that commit 97259191 did not
completely fixed the issue with testRequestBenchmark.

This patch changes the name of the test to not include "test" and
removes @SmallTest annotation, which should do the job of @Ignore while
ConnectivityServiceTest still extends AndroidTestCase.

In addition timeouts are adjusted to take into account recent failures
observed.

This is the last pending action before turning on FrameworksNetTests on
presubmits.

Bug: 32561414
Test: no functional change
Change-Id: I56ef334e19e99e5a3483418330e5f0ccd6eb31bb

Hugo Benichi   commited 2017-05-31 10:23:42 +09:00
3bcb72f6ec
Merge changes If4deb106,Ib25d7658 am: 0388f0e47b am: 41a57af66a
am: ae278410f5

Change-Id: I4fa34b647e7b2408d4493cfb148ae7d8c24bd6e8

Hugo Benichi   authored and   android-build-merger   commited 2017-05-26 00:58:27 +00:00
68f0403b91
@Ignore ConnectivityServiceTest#testRequestBenchmark
Ignore the last remaining test in ConnectivityServiceTest with spurious
failures. testRequestBenchmark has some intrinsic chances of failure due
to the fact it attempts to assert elapsed time durations against a
reference target.

Bug: 32561414
Test: no functional change
Change-Id: Ib25d76581b47997b2ef84df3e6a9fd9224b85d92

Hugo Benichi   commited 2017-05-26 07:18:15 +09:00
9725919140