Commit graph android_packages_modules_Co.../staticlibs/testutils/devicetests
Message SHA1
Address warnings in TestableNetworkCallback
Test: TH
Flag: EXEMPT test-only
Change-Id: Ifcbbc6e5443f619279744be993cce10f4ecd22a5

Chalard Jean   commited 2025-05-19 16:35:55 +09:00
63947668a2
Remove RecorderCallback.
This class doesn't actually serve a purpose, it only makes
TestableNetworkCallbck more complex.

Test: CtsNetTestCases ConnectivityCoverageTests
Flag: EXEMPT test-only
Change-Id: I39a598b82a3215384bdfe04980f4b280ab2c2716

Chalard Jean   commited 2025-05-19 16:35:53 +09:00
f2994122c1
Remove deprecated SC_V2 constant
Test: TH
Flag: EXEMPT test-only
Change-Id: I3444fad305f49294ed8c3a850b631f385678c117

Chalard Jean   commited 2025-05-15 09:03:59 +09:00
9373e3442e
Cleanup and improve logging for DefaultNetworkRestoreMonitor
Bug: 413188127
Flag: EXEMPT test-only
Test: CtsNetTestCases
Change-Id: I16938de33e1beee1a38c76eeae2fcf52d8f79870

Chalard Jean   commited 2025-05-09 16:43:56 +09:00
e73d3b934c
Add packet builder support for rapid commit option
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I4fde592fca440d08f5d07f090d3c9ad45c2c10a1

Patrick Rohr   commited 2025-05-05 11:10:06 -07:00
bde43b8a72
Add IA_PD Option support to packet builder
The IA_PD Option is modeled as a separate "packet", because it can
contain various options itself. It turns out that with the current
packet builder architecture, building nested packets (of which DHCPv6 is
an extreme example) is actually quite difficult. We would encounter
similar problems if we ever were to try and build netlink packets.

One thing that could be done is to add another overload for
PacketBuilder#div that takes another PacketBuilder object, allowing an
syntax such as:

dhcp6_header / dhcp6_rt_sol_max / (dhcp6_ia_pd / dhcp6_ia_prefix)

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I35694627285759dd17d8a8bf5994aaa96e6b391d

Patrick Rohr   commited 2025-05-05 11:10:06 -07:00
424655f497
Add payload support for Dhcp6Pkt
IA_PD options will be modeled as separate packets

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I2841b1d2283fa50bdc664ab865e64f92aba3ce0c

Patrick Rohr   commited 2025-05-05 11:10:06 -07:00
ea3f8b0fb1
Add packet builder support for commonly used DCHPv6 options
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I38f3250279c85177fc4ce8f44a35ae3883e7a8ae

Patrick Rohr   commited 2025-05-05 11:10:06 -07:00
684c48afb0
Add Dhcp6Pkt PacketBuilder support
This adds support for building the Dhcp6Pkt header. Options are added
later.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I588d8fc6ba68d1132a3beb1b436d8175ac0ae577

Patrick Rohr   commited 2025-05-05 11:10:06 -07:00
3b88b3cec5
Make NdResponder thread-safe
Note that a new neighbor can still be added while processing a packet,
which may influence the result, though this shouldn't affect tests.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: If6860f3a52a406bbbbdd323061bfb918f1fb866c

Patrick Rohr   commited 2025-05-05 11:10:06 -07:00
86b2aed4f4
Merge "Update outdated example code" into main
Maciej Å»enczykowski   authored and   Android (Google) Code Review   commited 2025-05-01 00:59:52 -07:00
ffd713da3d
Update outdated example code
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I0a87d71f693edcf13ad85049bff24169ddbedb3e

Patrick Rohr   commited 2025-04-30 12:24:09 -07:00
09c0307b9a
Move failWithErrorReason to a common place
This is a shared public utility. Its main utility is for methods
that can fail, have an error message of their own, and also want
to take an error message from a caller and want to combine them.
Example use :
fun <T> assertEquals(expected: T, actual: T, msg: String? = null) {
  if (expected != null) {
    failWithErrorReason(msg, "Expected $expected, got $actual")
  }
}
...which allows someone to say
assertEquals(a, b, "Checking a vs b")

Test: TH
Flag: EXEMPT test-only change
Change-Id: Id3eaa8384b4177f38f13576d9b4d742c52027ae4

Chalard Jean   commited 2025-04-27 15:54:35 +09:00
c96d1ae0e6
Improve TestableNetworkOfferCallback
Update it to follow the latest conventions and add support for
eventuallyExpect.

Test: ConnectivityCoverageTest
Flag: EXEMPT test-only change
Change-Id: Iabc2fad051b874e3e18a0645361409f0427891fb

Chalard Jean   commited 2025-04-27 15:54:34 +09:00
5f3997b6af
Merge "File the per-app request for opted-in satellite-optimized apps" into main
Jean Chalard   authored and   Android (Google) Code Review   commited 2025-04-26 18:18:21 -07:00
31dce78e09
File the per-app request for opted-in satellite-optimized apps
Test: ConnectivityCoverageTest
Bug: 410731080
Flag: EXEMPT controlled in counter-part change ag/33220291
Change-Id: I0307f697a441c2810cafd4643d381e66a0ac9243

Chalard Jean   commited 2025-04-27 02:12:44 +09:00
76a60c1654
Merge "Refactor CarrierConfigRule carrier privilege" into main
Quang Luong   authored and   Android (Google) Code Review   commited 2025-04-24 23:33:19 -07:00
81a8ec0bcf
Refactor CarrierConfigRule carrier privilege
Addressing leftover comments in ag/33040619 regarding carrier privilege
acquisition in CarrierConfigRule with the following changes:
1) Refactored CarrierPrivilegeCallback to match records using a lambda.
2) Added various helper methods to handle calls with permissions.
3) Moved wait for carrier privlege to overrideConfigAndWait.
4) Fixed acquireCarrierPrivilege to append to current cert strings
   instead of overwriting them.
5) Fixed dropCarrierPrivilege to remove from current cert strings
   instead of cleaning up all configs.

Flag: EXEMPT test only change

Bug: 409710349
Test: atest TetheringManagerTest
Change-Id: I1165d95775e809f1aa8905af029fb13df0d3a1a8

Quang Anh Luong   commited 2025-04-25 12:50:32 +09:00
b4f1e46e6d
Merge "Move getTestableNetworks to a common location" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-04-21 00:36:58 -07:00
cb677726c6
Move getTestableNetworks to a common location
Use a common code path for getTestableNetworks, which obtains Wi-Fi and
cellular from network callbacks. This avoids mixing callbacks and
synchronous calls, as getTestableNetworks may be called after
ensureWifiConnected, which uses NetworkCallbacks.

Test: atest
Bug: 253698734
Flag: TEST_ONLY
Change-Id: I8bf946b5258270554286e52b8aa3189aa2ba52e1

Remi NGUYEN VAN   commited 2025-04-21 15:18:57 +09:00
46f86934e1
Remove @JvmSerializableLambda usage in CarrierConfigRule
@JvmSerializableLambda was used in NetworkAgentTest to get around the
link error caused by JUnit enumerating through lambda methods that
referenced classes that weren't available on older platform versions.

Since this code was ported from NetworkAgentTest to CarrierConfigRule
whose lambda methods are not enumerated by JUnit, this workaround isn't
necessary anymore.

Flag: EXEMPT test only change

Bug: 409710349
Test: atest TetheringManagerTest
Change-Id: Ib876e237b239661548ae3c1d23fcb52f389f6254

Quang Anh Luong   commited 2025-04-17 17:10:44 +09:00
5db5a47144
Merge "Fix carrier privilege race condition" into main
Quang Luong   authored and   Android (Google) Code Review   commited 2025-04-16 15:19:02 -07:00
fae887a44b
Fix carrier privilege race condition
CarrierConfigRule cleanup does not wait for carrier privilege value
to change before continuing to the next test, which may cause test
failures if the value isn't fully reset on time.

Make sure the value has time to properly be reset by waiting for
onCarrierPrivilegesChanged before proceeding.

Flag: EXEMPT test only change.

Bug: 409710349
Test: atest TetheringManagerTest#testCarrierPrivilegedIsTetheringSupported TetheringManagerTest#testCarrierPrivilegedStopTetheringWifiWithConfigSucceeds

Change-Id: If67884514a2c1678834ab9ff67947e75e37db0a7

Quang Anh Luong   commited 2025-04-16 15:02:54 +09:00
9bd526d7d4
Add SLLAO support to RaPkt
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I1c0050ca1b634dfa7b2ac5de551a2470e06a9791

Patrick Rohr   commited 2025-04-14 15:47:41 -07:00
ea0364b5d4
Use HexDump instead of Kotlin Experimental API
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I5d0e4989194eecc90e00b1903f8458d9df098ff4

Patrick Rohr   commited 2025-04-14 15:47:41 -07:00
db7d961fb3
Rename lifetime params for brevity
Line breaks make tests harder to read, so this change should help
fitting everything on a single line.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I286c4398a2f738ab82498b93f9f9344577befeb8

Patrick Rohr   commited 2025-04-14 15:47:41 -07:00
c43cc96360
Align UdpPkt with scapy
Renames srcPort to sport and dstPort to dport and generates a random
port number in the range of [1, 65536) if no argument is passed.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: If446cde9a7ff414f52c60f70458ff046a2c4dc33

Patrick Rohr   commited 2025-04-14 15:47:41 -07:00
ea520794cc
Expose backtrace() in PollPacketReader
Figuring out what packets were received is useful for debugging.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I3184845b76e33da186f39a2344548c2d16715173

Patrick Rohr   commited 2025-04-11 15:59:37 -07:00
f39b748cbf
Add support for setting hop limit
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I7ee5b0f31b4db633451a0ddee5d92e45e5947f84

Patrick Rohr   commited 2025-04-11 15:11:33 -07:00
1586ffbeb1
Merge "Print module version in CtsNetTestCases conndiag" into main
Treehugger Robot   authored and   Android (Google) Code Review   commited 2025-04-10 02:09:09 -07:00
e2209bf89b
Print module version in CtsNetTestCases conndiag
Bundle the version of the tethering APEX in the build branch into
CtsNetTestCases as a resource, and include it in the failure header on
test failure.

This should make it easy to identify what version of the module matches
the built test when investigating test failures.

Test: atest
Flag: TEST_ONLY
Change-Id: I15a53b3d7649ebde9706b10ee504d08aa78ee7de

Remi NGUYEN VAN   commited 2025-04-10 16:41:29 +09:00
6ee6075685
Merge "Only set the carrier service package on supported devices" into main
Jean Chalard   authored and   Android (Google) Code Review   commited 2025-04-09 15:57:02 -07:00
86fb573931
Only set the carrier service package on supported devices
Not all U devices support this. It's only supported by U QPR1+.

Bug: 404415649
Test: NetworkAgentTest
Flag: EXEMPT bugfix
Change-Id: I66d30b5f0be5628561bfeb1f90f5318954544e31

Chalard Jean   authored and   Jean Chalard   commited 2025-04-08 00:51:44 -07:00
d3db165d9e
IpUtils.checksum() does not require ByteBuffer position reset
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Ib38c54419675bc41337f24932f0aa1cd7b9eeb4f

Patrick Rohr   commited 2025-04-07 20:10:18 -07:00
9381c493d9
Move UDP header assembly to build()
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I5e070a57bfa40f95b72549cb02662f6557f78d45

Patrick Rohr   commited 2025-04-07 20:10:18 -07:00
c1cf40d38e
Add packet builder support for UDP packets
UDP packets can be built as:

val p = ether / ipv6 / udp / data
val p2 = ether / ipv4 / udp / data
val p3 = ether / ipv4 / udp / ipv4 / udp / data

This also gets rid of Icmp6Pkt in favor of a function call that
calculates the checksum over an L4 packet.

This does add a bit of duplication: the build() function for RA and NA
packets is identical, and UdpPkt#build() is not far off. However, subtle
differences in L4 packet format (namely the checksum and length
positions) make generalizing this code difficult. This is possible by
passing the checksum position, proto byte, and adding an abstract
function that fills in the L4 length field before performing checksum
calculation. However, this complexity is likely not worth it. If the
repetition becomes obvious once more protocols (such as ICMPv4/6 echo,
etc.) are added, this decision will be revisited.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Ia78792418f29a3be091ebdc9bb2c26e45da9f2b1

Patrick Rohr   authored and   Maciej Å»enczykowski   commited 2025-04-07 14:22:43 -07:00
328cfb5051
Add packet builder support for IPv4 packet
Options and fragments aren't currently supported.

Test: decoded test packet on packetor.com
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Ia3a094cb1d2b093cae2f372cc84a72ad7e107105

Patrick Rohr   commited 2025-04-07 10:28:35 -07:00
313c1057f6
Add support to NdResponder to add custom RA
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Ic7f2567f15b76478df1c438e756929a93ffd4d43

Patrick Rohr   commited 2025-04-07 10:28:35 -07:00
495edd20a8
Delete RouterAdvertisementResponder
And move all other tests over to NdResponder.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Ia1e08c439a039a4ffa020318da44652fadadf5c9

Patrick Rohr   commited 2025-04-03 22:09:47 -07:00
d107a1692f
Rewrite RouterAdvertisementResponder in Kotlin
And integrate into EthernetManager. So it can make proper use of
PacketBuilderUtils.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Ifbca38e6efde68e015c69bf919d079d1605310d1

Patrick Rohr   commited 2025-04-03 21:59:21 -07:00
75a83c51ad
Add support for ICMPv6 checksumming
Test: parsed packet on packetor
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Id81c57a7f9ca9ee3671768941687458100beb068

Patrick Rohr   commited 2025-04-03 16:23:08 -07:00
a39bf4ee97
Support scapy packet builder syntax
Scapy allows building packets in order, i.e. by assembling them using
the division operator: val p = ether / ipv6 / icmpv6.

This change adds support for an identical pattern. To do so, it first
assembles all packets in order inside a packet builder class. When
build() is called, it traverses the packet list in reverse and assembles
the final packet, similar to ther original instance of the code. To
support checksum generation in the future, the code also keeps track of
the "closest pseudo header packet", i.e. the nearest encapsulating IPv6
(and soon IPv4) packet. This architecture should eventually be able to
support the creation of more complex packets, for example:
val p = ether / ipv6 / ipv6-ext / udp / ipv6 / udp.

(Note that now that I am writing this, I realize that this could
probably be significantly simplified by including IPv6 extension header
support as part of Ip6Pkt and always using the encapsulating packet for
the pseudo header...)

This code does not yet implement checksum generation.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I9b0fa0e5bb66edf6928d9b96144c5ed133ebab64

Patrick Rohr   commited 2025-04-03 14:50:09 -07:00
0b8e3a26fb
Use Kotlin syntax for getters
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Ic4b22e2c6154bf634bfbbe6c539bc6b26a29b3af

Patrick Rohr   commited 2025-04-02 11:41:01 -07:00
e2db1fe7e0
Return this from add*Option methods
To support friendlier builder syntax.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Iaf4250da61e2c0b5311682b2c462eb07467428f7

Patrick Rohr   commited 2025-04-02 11:37:24 -07:00
91ef24c6f6
Add some documentation to RaPkt
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I429b316a2660789316f46fae63c621d81dfe67af

Patrick Rohr   commited 2025-04-02 10:30:36 -07:00
22727f7bef
s/payload/data/ for brevity
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I03cdb93f616510c3648d91f993577cb4d846a5bd

Patrick Rohr   commited 2025-04-02 10:30:36 -07:00
2e95c356d7
Add packet builder support for neighbor advertisement
In the future, we could consider adding an ICMPv6 base class that
implements common functionality between NaPkt and RaPkt. However, given
that checksumming is not currently supported, the common functionality
is limited to only a couple of lines.

Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Id45f2ed43f45778e80b303bd356babcc93de1c3f

Patrick Rohr   commited 2025-04-02 10:30:36 -07:00
49eede426b
Add packet builder support for more RA options
Test: Built packet and parsed it in packetor
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I69d3451cbdd7f229f914ee5d0e4dd2c7a5178f0a

Patrick Rohr   commited 2025-04-01 16:26:30 -07:00
6269bbdedb
Remove unnecessary {}
Test: TH
Flag: EXEMPT mainline
Bug: 100
Change-Id: I4ca9f92ce6535cf6f07aa74a94ee58ced541e73f

Patrick Rohr   commited 2025-04-01 14:45:46 -07:00
62154f61be
Introduce generic packet builder utilities for use in tests
This change introduces a set of generic packet builder utility classes
that can be used in tests. The API surface aims to be similar to scapy
with a focus on ease of use.

Test: TH
Flag: EXEMPT mainline
Bug: 1
Change-Id: I9c751cece7bbad6bc38953cb52e9ab42393bab89

Patrick Rohr   commited 2025-04-01 10:48:31 -07:00
c3af22faca