Commit graph android_packages_modules_Co.../staticlibs/tests/unit/src/com/android
Message SHA1
Rename TimerFileDescriptor to RealtimeScheduler
Test: TH
Change-Id: I756cb84425e7701b9340d4f6589da364b7c515f7

Yuyang Huang   commited 2025-01-09 19:38:39 +09:00
1ed836c30f
Enhance TimerFileDescriptor to schedule multiple tasks
Improved the class to allow scheduling and execution of multiple tasks
concurrently.

Test: TH
Change-Id: I79b63c6846e0e0a934f257d4a38d9cab08bd13e8

Yuyang Huang   commited 2025-01-09 19:38:35 +09:00
4d46630219
Log and report terrible errors for improved debugging and tracking
When a terrible error occurs, this change ensures that it is both logged
using Log.wtf() and reported via a dedicated metric. This dual approach
provides comprehensive error information for debugging in dogfood
environments (Log.wtf()) and tracks the occurrence of these errors in
production (via metrics).

Test: TH
Change-Id: Ic376f3789ab0cc9b094e79301849492143ed777c

Yuyang Huang   commited 2025-01-07 16:18:55 +09:00
77f29fc343
Merge "Use netlink to set interface up/down in EthernetTracker(1/2)" into main
Chuwei He   authored and   Gerrit Code Review   commited 2024-12-16 20:10:32 -08:00
51478aa9da
Use netlink to set interface up/down in EthernetTracker(1/2)
Currently EthernetTracker uses netd to interact with interfaces, such as
retrieving all interfaces, updating interface configurations etc.
However, the usage of netd can bring some unexpected side effects, such
as clearing v4 address when toggling on/off interface.

This change moves forward with one less usage of netd to use netlink
directly to set interface up/down in EthernetTracker.

This patch adds support in netlink utils to get/set interface flags and
added related unit test.

Bug: 379021505
Test: atest NetworkStaticLibTests
Change-Id: I5f82781663ba340588450cceea55caec4e3991a8

Chuwei He   commited 2024-12-17 11:04:19 +09:00
0daa52affd
Add helper methods for array manipulation
Introduced new helper methods to simplify common array operations:

* Concatenation: Combine multiple arrays into a single array.
* Prepend: Add elements to the beginning of an array.
* Append: Add elements to the end of an array.

Test: TH
Change-Id: I6d9e19d7152c2ae3e75c3d521b4ee994347c4d2e

Yuyang Huang   commited 2024-12-10 17:44:39 +09:00
aee67c1e8f
Merge changes from topic "trafficstats-client-cache" into main
* changes:
  Introduce client-side rate limiting for TrafficStats APIs
  Unit test for TrafficStats Rate Limit Cache
  Add `putIfAbsent` method to LruCacheWithExpiry

Junyu Lai   authored and   Gerrit Code Review   commited 2024-12-10 01:55:44 +00:00
8a2862bd92
Merge changes from topic "update-ipv4-multicast" into main
* changes:
  Throw `IllegalArgumentException` instead of `RuntimeException` in hexStringToByteArray()
  Add IPv4 all host address definition

Jimi Chen   authored and   Gerrit Code Review   commited 2024-12-09 12:30:40 +00:00
3ffdc0b516
Throw IllegalArgumentException instead of RuntimeException in hexStringToByteArray()
Test: atest NetworkStaticLibTests
Change-Id: I7bc033e771b175c9941147972a1b778536a76c2a

Jimi Chen   commited 2024-12-09 05:18:41 +00:00
2c60124e10
Add putIfAbsent method to LruCacheWithExpiry
This commit introduces a new `putIfAbsent` method to the
`LruCacheWithExpiry` class. The `putIfAbsent` method
creates a new entry if the key is absent or returning the
existing value if the key is already present. This addition
enhances the cache's functionality and flexibility.

Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.net.module.util.LruCacheWithExpiryTest
Bug: 343260158

Change-Id: Iff03ce2b6c27fedd71510edaa6bd86885f6df122

Junyu Lai   commited 2024-12-06 08:13:08 +00:00
9ac087d962
Merge "Update TimerFileDescriptor to support different task types" into main
Paul Hu   authored and   Gerrit Code Review   commited 2024-12-06 03:20:36 +00:00
97a4977f83
Merge "Build the timerfd wrapper class" into main
Paul Hu   authored and   Gerrit Code Review   commited 2024-12-05 08:54:25 +00:00
e8e32ab330
Update TimerFileDescriptor to support different task types
Introduced ITask and its concrete implementations (e.g.
MessageTask, RunnableTask) for TimerFileDescriptor to enable more
flexible task scheduling.

Bug: 366373064
Test: atest NetworkStaticLibTests
Change-Id: I3a5177b66916f50f3f943d8b63b0c760bece60e4

Paul Hu   commited 2024-12-04 08:32:59 +00:00
2bb40d2849
Build the timerfd wrapper class
Build a wrapper class that allows users to easily use the timerfd
object and trigger delayed callbacks through this class.

Bug: 366373064
Test: atest NetworkStaticLibTests
Change-Id: I8081d29e4874df8b9e59f7fc845b20cbd29aec40

Paul Hu   commited 2024-12-04 08:32:59 +00:00
50c14402f6
Merge "Add RtmNetlinkPrefixMessage class to represent RTM_NEWPREFIX message." into main
Xiao Ma   authored and   Gerrit Code Review   commited 2024-12-04 04:41:43 +00:00
7dd2525646
Add RtmNetlinkPrefixMessage class to represent RTM_NEWPREFIX message.
Bug: 315069348
Test: atest NetworkStaticLibTests
Change-Id: I566fa6fcc85a19dab8edf2dccb356a53fdc8e6b2

Xiao Ma   commited 2024-12-03 19:53:43 +09:00
cb0aabd14c
Merge "Remove unnecessary semicolon" into main
Yuyang Huang   authored and   Gerrit Code Review   commited 2024-12-02 13:39:40 +00:00
2fa511bdc2
Remove unnecessary semicolon
Test: TH
Change-Id: Icfb415f9ba60860b2c066275d7936adfbb37e30f

Yuyang Huang   commited 2024-12-02 20:04:25 +09:00
fb2425d173
Only report tryTest errors when not caught
Instead of reporting tryTest errors when the tryTest block throws,
report them in the cleanup block if no catch block has caught it.

This fixes a bug where tests that use tryTest/catch would collect
diagnostics in expected cases.

Test: atest
Change-Id: Ic53ae54f1945a2784becd50e5890fad8e7461474

Remi NGUYEN VAN   commited 2024-12-02 09:26:53 +09:00
fc724ab59a
Merge "Consolidate handler thread check functions in HandlerUtils" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-10-17 02:25:57 +00:00
b0e3eaf70b
Update unit tests to reflect the changes to RoutingCoordinator and
PrivateAddressCoordinator

Bug: 350699020

Change-Id: Id0ae47dcb03c60b6caafa3feeecaf8b21092a101

Handa Wang   commited 2024-10-16 23:54:29 +00:00
d789d1b8de
Consolidate handler thread check functions in HandlerUtils
Moved common handler thread check functions from MdnsUtils.java
to HandlerUtils.java within the staticlib to facilitate reuse by
both Connectivity and NetworkStack modules.

Test: TH
Change-Id: Id96f6558c32c44fbdf2d2ce3e57c14da0cbf3ed7

Paul Hu   commited 2024-10-16 10:07:03 +00:00
84a40ff16d
Add createGetLinkMessage() at RtNetlinkLinkMessage
This CL adds the createGetLinkMessage() method at the
RtNetlinkLinkMessage class, that creates a link message to get the
information of a interface. The functionality is the same as
"ip link show $interface".

Bug: 364501824
Test: atest NetworkStaticLibTests

Change-Id: I87a120f488e5b6f7f24c663c68ba26835fa2157a

Chih-Yu Huang   commited 2024-09-25 17:16:24 +09:00
f0bcd6f4d6
Merge "Add createSetLinkNameMessage method at RtNetlinkLinkMessage" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-09-20 08:12:42 +00:00
5fdce4d932
Merge "Add createSetLinkStateMessage method at RtNetlinkLinkMessage" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-09-20 01:48:30 +00:00
dde0dc63d3
Add createSetLinkNameMessage method at RtNetlinkLinkMessage
This CL mainly adds the createSetLinkNameMessage() method at the
RtNetlinkLinkMessage class, that creates a link message to rename the
network interface. The functionality is the same as
"ip link set $interface name NEW_NAME".

Bug: 364501824
Test: atest NetworkStaticLibTests
Change-Id: I6323bce1ece10f4437483214860d50cb7d29df8d

Chih-Yu Huang   commited 2024-09-20 09:15:52 +09:00
9f8ed83e04
Add createSetLinkStateMessage method at RtNetlinkLinkMessage
This CL mainly adds the createSetLinkStateMessage() method at the
RtNetlinkLinkMessage class, that creates a link message to set the
interface up or down. The functionality is the same as
"ip link set $interface up" or "ip link set $interface down".

Bug: 364501824
Test: atest NetworkStaticLibTests

Change-Id: Id9232851f6d9a7f99f857fd5b8d4eae506de2c7c

Chih-Yu Huang   commited 2024-09-20 09:06:19 +09:00
73f5b138a2
Merge "Make RtNetlinkLinkMessage class immutable after creation" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-09-18 03:28:35 +00:00
e7f5ac9d2f
Make RtNetlinkLinkMessage class immutable after creation
This CL marks all the fields of RtNetlinkLinkMessage class final. That
means once the instance is created, the instance is immutable.

Also, the CL adds a static create method that verifies the arguments,
and updates the nlmsg_len field of the header before creation.

Bug: 364501824
Test: atest NetworkStaticLibTests

Change-Id: I08af4a6e68df9aee8ae76d953fac5d81f0b02c84

Chih-Yu Huang   commited 2024-09-18 10:46:07 +09:00
f4a0865055
Merge "Update checkLocationPermissionInternal not to throw" into main
Motomu Utsumi   authored and   Gerrit Code Review   commited 2024-09-05 03:39:19 +00:00
99506666f3
Merge "Support checking DnsResolver version in isFeatureSupported." into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-08-30 04:17:09 +00:00
a0dc47579c
Support checking DnsResolver version in isFeatureSupported.
Test: new unit tests
Change-Id: Ia251c068806a3d8c970d984322d4cb7e2364c1ef

Lorenzo Colitti   commited 2024-08-30 11:50:12 +09:00
ca67820a94
Merge "Remove unused methods and restrict visibility in LocationPermissionChecker" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-08-29 11:19:24 +00:00
6f005ff41b
Merge "Use doReturn instead of when().thenReturn" into main
Motomu Utsumi   authored and   Gerrit Code Review   commited 2024-08-27 06:28:01 +00:00
e73285c622
Update checkLocationPermissionInternal not to throw
Currently, checkLocationPermissionInternal throws if the package does
not exist or package name and uid doest not match.
This caused system server crash in ConnectivityService.
ConnectivityService is an only caller of checkLocationPermissionInternal
and ConnectivityService should consider uid does not have location
permission in this case.
So this CL updates checkLocationPermissionInternal return
ERROR_LOCATION_PERMISSION_MISSING instead of throwing exception.

Bug: 337473824
Test: LocationPermissionCheckerTest
Change-Id: Ic42d6203bafa95aea7e5428c490b0a298e3bd260

Motomu Utsumi   commited 2024-08-27 15:25:37 +09:00
d55bdd26e2
Remove unused methods and restrict visibility in LocationPermissionChecker
Bug: 337473824
Test: TH
Change-Id: Ie14a5bdb39742d4c086f63fca3e12521e1ad84a7

Motomu Utsumi   commited 2024-08-27 15:25:34 +09:00
3625bf6fae
Add bool type to Struct.java.
Bug: 361492282
Test: TreeHugger, atest NetworkStaticLibTests:com.android.net.moduletests.util.StructTest
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I9c6ff0b826c425fc6250e2eb7f844275728f92dd

Maciej Å»enczykowski   commited 2024-08-23 19:17:55 +00:00
e87608b523
Use doReturn instead of when().thenReturn
doReturn is less prone to races since when().thenReturn will fail if the
mock is used by other thread between when() and thenReturn()).

Bug: 337473824
Test: LocationPermissionCheckerTest
Change-Id: Ie07f3f3cf23b57296a7db4fb9296b84be5b57214

Motomu Utsumi   commited 2024-08-23 22:39:15 +09:00
7cf1a03ee5
Move fromPublicNetworkStats to statsd
This is a no-op refactor to reduce complexity to prevent from
accessing trunk stable flags from static libs. Also it
makes more sense since statsd is the only caller.

Test: atest NetworkStaticLibTests:com.android.net.moduletests.util.NetworkStatsUtilsTest

Bug: 335680025
Change-Id: Ied563bd685bdba9d514414c05d58009304d5baa4

Junyu Lai   commited 2024-08-19 14:39:18 +08:00
d2a2218237
Revert "Use addEntries when creating NetworkStats"
This reverts commit 668560d85a.

Reason for revert: Devices failing to boot, see b/359795863 

Change-Id: I13dc629e2eb626bff1aed6ff262699c3f577ab9c

Sam Dubey   authored and   Gerrit Code Review   commited 2024-08-14 10:00:32 +00:00
c006797ed4
Use addEntries when creating NetworkStats
In the current design, NetworkStats.addEntry is used within a
loop to create a NetworkStats instance from entries. This results
in a large memory footprint because the addEntry() method clones
the original NetworkStats instance each time it is called.

This change utilizes the newly created API to add a list of
entries at once. This approach only clones the instance once,
thereby reducing the required memory footprint.

Test: atest NetworkStaticLibTests:com.android.net.moduletests.util.NetworkStatsUtilsTest#testPublicStatsToAndroidNetStats
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.net.module.util.NetworkStatsUtilsTest
      (on S device)
Test: atest ConnectivityCoverageTests:com.android.testutils.NetworkStatsUtilsTest
      (on S device)
Bug: 335680025
Change-Id: I5c635613ed3ba34d840ee71b6bef21d10105df0d

Junyu Lai   commited 2024-08-13 17:46:20 +08:00
668560d85a
Make assertNetworkStatsEquals supports null iface name
This change enables comparison of android.net.NetworkStats
instances even when their interface name is null. This scenario
arises when deriving a android.net.NetworkStats instance
from an app.usage.NetworkStats, which lacks interface name
information. However, the original utility method relies on
NetworkStats.Entry#equals, which is incompatible with null
interface names on T- devices, because they do not run
mainlined NetworkStats.

This change refactor assertEntryEquals and makes
assertNetworkStatsEquals to use it to compare android.net.NetworkStats
instances.

Test: atest NetworkStaticLibTests
Test: atest ConnectivityCoverageTests:com.android.testutils.NetworkStatsUtilsTest
      (on S device)
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.net.module.util.NetworkStatsUtilsTest
      (on S device)
Bug: 335680025

Change-Id: I25a685e4c2d4cf70132b2c4374b2bb8129c844cb

Junyu Lai   commited 2024-08-13 17:02:33 +08:00
10fcc1761d
Move NetworkStatsUtilsTest to Connectivity
Since the testutils.NetworkStatsUtils is in Connectivity.
Move it to Connectivity git makes more senses.

Test: atest NetworkStaticLibTests
Bug: 335680025
Change-Id: Ia59cc8f74417b1dbbcccf12c5c79c3ed22454b78

Junyu Lai   commited 2024-08-12 15:01:09 +08:00
63b764ad8d
Rename getShrinkedBackingArray to getMinimized*
"Shrinked" should actually be "shrunk" or "shrunken"; in any case
"minimized" is simpler and possibly more accurate (it's the minimum size
required to hold the values).

Test: atest
Change-Id: If787d3f3d6e1046338d4e89ed924bce183e74bd6

Remi NGUYEN VAN   commited 2024-08-02 19:27:41 +09:00
dfb159289b
Modify DnsUtils to use uppercase DNS label conversion
Updated methods in DnsUtils to convert DNS labels to uppercase instead
of lowercase to ensure compatibility with APF requirements.

Test: TH
Change-Id: I4b585f875b29b9e508d9a5eb73a073587510faab

Yuyang Huang   commited 2024-07-18 19:16:47 +09:00
e0051d4260
Merge "Consolidate DNS label comparison functions in DnsUtils" into main
Treehugger Robot   authored and   Gerrit Code Review   commited 2024-07-18 04:50:45 +00:00
880807031f
Consolidate DNS label comparison functions in DnsUtils
Moved common DNS label comparison functions from MdnsUtils.java to
DnsUtils.java within the staticlib to facilitate reuse by both
Connectivity and NetworkStack modules.

Test: TH
Change-Id: Ie839c5621d2c4b74e41987a0c6d1141d0d6e24f8

Yuyang Huang   commited 2024-07-18 12:00:59 +09:00
d851a04db4
Merge "Add default network monitor to DevSdkIgnoreRunner" into main
Motomu Utsumi   authored and   Gerrit Code Review   commited 2024-07-17 02:47:06 +00:00
a9a27614cc
Add default network monitor to DevSdkIgnoreRunner
Some tests reconnect wifi and don't wait wifi is validated.
So default network is changed while later tests are running.
This CL adds RestoreDefaultNetwork annotation to monitor default network
changes and wait to default network is restored to previous state.
If the default network is not restored within timeout, test fails.

Bug: 328870515
Test: atest MultinetworkApiTest NetworkAgentTest
Change-Id: I01e858109ac274ff60769bd558b91654298290ff

Motomu Utsumi   commited 2024-07-16 20:16:04 +09:00
74db5855fb
Add a CallbackQueue class
The class will be used to build memory-efficient objects (int arrays)
used to queue ConnectivityService callbacks while an app is frozen.

This is very similar to an ArrayList<Pair<Short, Short>>, but avoids
object boxing which would use a lot more memory.

This is intended to be used by ConnectivityService both as a builder,
and as a utility to read lists of callbacks that it stores. Long-lived
references to the CallbackQueue would not be kept to minimize memory
usage; only the array returned by toArray needs to be stored.

Test: atest
Bug: 327038794
Bug: 279392981
Change-Id: I187ea15d14dfd160e577e9e9e87b1aded27b1938

Remi NGUYEN VAN   commited 2024-07-16 13:36:49 +09:00
c3621e6012