Commit graph android_packages_modules_Co.../thread/tests
Message SHA1
[Thread] check too large error code in unit tests
Per CTS review comment in aosp/2949385:
```
You might want to make this a bit larger, otherwise if some new error codes are added in the future in a mainline update, already released CTS test packages will start to fail.

That should be fixed by mCTS, but since mCTS is not in place yet, it's best to be safe
```

This commit moves the too-large error code check into unit test to avoid
potential CTS compatibility issues.

Bug: 323791003
Change-Id: If99191630e1044cb8f5ed189bf79567cd51c3905

Kangping Dong   commited 2024-02-05 15:53:43 +08:00
54d62cee14
Merge "[Thread] add CTS tests for ThreadNetworkException" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-02-04 09:58:33 +00:00
2fe1db6e49
[Thread] add CTS tests for ThreadNetworkException
Bug: 323464130
Test: presubmit
Change-Id: I67bde1506e99b42ff3806254aa8bbc6c98792e3e

Kangping Dong   commited 2024-02-04 12:58:10 +08:00
86a70b4992
[mdns] implement NsdPublisher AIDL service
For ot-daemon to perform mDNS operations, we need to implement an AIDL
service NsdPublisher. MdnsPublisher forwards the calls to NsdManager.

For now, only register & unregster a service without a custom host is supported.

Bug: 320211657
Bug: 318323473
Test: atest CtsThreadNetworkTestCases

Change-Id: Ia392a0f57046f53973ac6bd6043dec915d170666

Handa Wang   commited 2024-02-04 04:03:36 +00:00
0c99448af4
Merge "[Thread] restarts when ot-daemon crashes" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-02-01 15:24:26 +00:00
fbaa7ea0bc
[Thread] restarts when ot-daemon crashes
This commit handles the ot-daemon crash by automatically restarting it
and rejoin the network if ever joined.

This also fixes the address not deleted issue in TunInterfaceContorller.

Bug: 321540728
Bug: 309792480
Change-Id: I3ed466eb70818974a1e57f01456363bdf82915d5

Kangping Dong   commited 2024-02-01 21:49:31 +08:00
3deddc7b3f
[DON'T BLOCK] Test ownership migration rules
This CL is created as a best effort to migrate test targets
to the new android ownership model. If you find incorrect or unnecessary
attribution in this CL, please create a separate CL to fix that.

For more details please refer to the link below,
<add g3 doc link>

Bug: 304529413
Test: N/A
Change-Id: I243f17b3f0ad7af9ffa15ca242456e36688733f5
Merged-In: I243f17b3f0ad7af9ffa15ca242456e36688733f5

Aditya Choudhary   commited 2024-01-31 12:34:50 +00:00
01b5ede2b2
Merge "[Thread] add Thread tests to mts-tethering" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-31 05:45:12 +00:00
6c728aa1fa
Merge "[Thread] add ThreadNetworkIntegrationTests to mts-tethering" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-29 12:08:06 +00:00
e2021fde0c
Merge "[Thread] tests a single ThreadNetworkController" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-29 06:29:46 +00:00
9c712684b1
[Thread] tests a single ThreadNetworkController
Simplifies the CTS tests by testing only the first controller given
there is only one controller. No testing logic changes.

This commit also moves the helper methods to end of the file as they are
not the focus.

Bug: 321662734
Test: m CtsThreadNetworkTestCases
Change-Id: I4acf26e13ee112df2b7378b1005a1a14de4d783e

Kangping Dong   commited 2024-01-29 11:57:40 +08:00
44b8312033
[Thread] add Android.bp format to make-pretty.sh
There are sometimes gerrit warnings on Android.bp file format:
```
Analyzer Description: Formats Android.bp files.
Owner: soong-team@google.com

This file is not formatted.

Run prebuilts/build-tools/linux-x86/bin/bpfmt -w {filename} to format the file, or apply the suggested fix.
```

This commit adds the suggested format script to make-pretty.sh to avoid
the warning.

Change-Id: I8a691b1e6af873e8c43e34ed3168203d469eee1c

Kangping Dong   commited 2024-01-28 13:14:46 +08:00
c73dd5aa23
[Thread] add ThreadNetworkIntegrationTests to mts-tethering
Bug: 299853805
Change-Id: I567142a8bf8c735b65048d985e94d958a7feef03

Kangping Dong   commited 2024-01-28 13:10:52 +08:00
25bcfee4e3
Merge changes from topic "set-thread-enabled" into main
* changes:
  Add service implementation for ThreadNetworkController#setEnabled
  Add setEnabled API

Yang Sun   authored and   Gerrit Code Review   commited 2024-01-26 11:22:37 +00:00
8f9544539b
Add service implementation for ThreadNetworkController#setEnabled
ThreadNetworkControllerService handles setEnabled requests and
asks ot-daemon to enable/disable Thread. The desired Thread enabled state
is saved in thread persistent setttings, the setting is loaded at bootup.

Bug: 299243765

Test: atest CtsThreadNetworkTestCases:android.net.thread.cts.ThreadNetworkControllerTest

Change-Id: Ifd0135433df25d9c6cfd3f365dd06ec7908268e7

Yang Sun   commited 2024-01-26 15:53:43 +08:00
625353b5bf
Add setEnabled API
setEnabled API is added to ThreadNetworkController, this
can be used by applications with privileged permission to set
Thread to enable/disabled state.

The Thread enabled state can be subscribed with
ThreadNetworkController#registerStateCallback.

When Thread is disabled, the join/scheduleMigration APIs will
fail with ERROR_THREAD_DISABLED.

When Thread is disabling, all commands will fail with ERROR_BUSY.

Bug: 299243765

Test: atest CtsThreadNetworkTestCases:android.net.thread.cts.ThreadNetworkControllerTest

Change-Id: Ifa7845bf1d5664ecd31ce74e24b3a839f92bba13

Yang Sun   commited 2024-01-26 15:53:33 +08:00
0797d9d501
Check whether the WiFi country code is a valid Thread country code
The Thread country code should be a 2-Character alphabetical country
code. The `00` is an invalid country code for Thread country code,
but it is the default country code for WiFi country code. If setiting
the `00` as the Thread country code, the ThreadCountryCode throws
an exception.

This CL checks whether the country code is a valid Thread country
code before setting the WiFi country code as the Thread country code.

Bug: b/322404467
Test: atest ThreadNetworkUnitTests
Change-Id: Ic5fd69fc254ee25ad1e75e17096a5f5310a9140f

Zhanglong Xia   commited 2024-01-26 11:51:44 +08:00
a888e726b3
[Thread] add Thread tests to mts-tethering
Bug: 322142548
Change-Id: I71af1787b23be4c27d26b30498408631c2955012

Kangping Dong   commited 2024-01-25 18:05:10 +08:00
974d3ed761
Add OEM country code to Thread country code sources
Bug: b/309357909
Test: Run `atest ThreadNetworkUnitTests`.
Change-Id: Ic3c9ef69fc77c44a50f6dc856e1af26c43be1aa2

Zhanglong Xia   commited 2024-01-25 16:08:04 +08:00
5c0d8a6603
Make ThreadNetworkController.setTestNetworkAsUpstream require NETWORK_SETTINGS permission
This CL contains following enhancements:

- Enforce NETWORK_SETTINGS permission for ThreadNetworkController.setTestNetworkAsUpstream.
- Move the setTestNetworkAsUpstream in
  ThreadNetworkControllerService to make the order of methods more
logical.
- Update the test case name in BorderRoutingTest.

Bug: 295843010
Bug: 320842152

Change-Id: I82edac6c819dd637f4c98f31368a1b520338ce24

Handa Wang   commited 2024-01-19 08:15:58 +00:00
253b3fb6da
Ensure the Thread integration test only run on CuttleFish devices
This is because the test case relies on **simulation** Thread radio, which is currently only available on CuttleFish.

Bug: 295843010
Test: atest android.net.thread.BorderRoutingTest

Change-Id: Icd29d91c9ec9912e27191e97fe7f58e9067c1d8c

Handa Wang   commited 2024-01-18 12:00:14 +08:00
d5e2ac94d1
[Thread] add CTS test for registerNetworkCallback for Thread
To make sure that apps can register for Thread network by specifying
only TRANSPORT_THREAD.

This prevents regression given aosp/2873154 was considered a short-term
solution.

Bug: 313000440
Test: atest CtsThreadNetworkTestCases:android.net.thread.cts.ThreadNetworkControllerTest#threadNetworkCallback_deviceAttached_threadNetworkIsAvailable
Change-Id: I7860c50b092439f39e5d8c437de1863b0633b7a0

Kangping Dong   commited 2024-01-16 09:56:48 +08:00
b68cad4414
[Thread] remove Thread.sleep from CTS tests
Test: atest CtsThreadNetworkTestCases
Change-Id: Id7c52532988048e4473591092ac60eb66b1b7bcb

Kangping Dong   commited 2024-01-04 18:12:41 +08:00
e828340016
Merge "[Thread] Add support for Thread persistent setting" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-03 13:01:53 +00:00
396cc5721e
[Thread] Add support for Thread persistent setting
The ThreadPersistentSetting class can be used to read/store key value
pairs in ThreadPersistentSetting.xml file.

Bug: 299243765

Test: atest ThreadNetworkUnitTests:com.android.server.thread.ThreadPersistentSettingTest
Change-Id: I564ce8373e6af8f5cdf066a579bec46bfffecb72

Yang Sun   commited 2024-01-03 19:09:47 +08:00
95f40d0c55
Merge "[Thread] add service unit test skeleton" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2024-01-03 10:06:47 +00:00
3deb5da6db
Add telephony country code to Thread country code sources
Bug: b/309357909
Test: Run `atest ThreadNetworkUnitTests`.
Change-Id: I51c297a5c30fb114a6e3fb8b54cdbfef142001b3

Zhanglong Xia   commited 2024-01-03 15:33:07 +08:00
a00bb3fad9
[Thread] add service unit test skeleton
Adds the Thread service unit test skeleton and make the services
testable.

Initially, a few trivial unit tests for existing APIs are added in
ThreadNetworkControllerServiceTest.java, and more tests will be added in
separate CLs later.

Bug: 317555104
Change-Id: I7b9e5f3663493d8da2448568de792e4272ee1df6

Kangping Dong   commited 2024-01-03 15:01:07 +08:00
276384042d
Add WiFi country code to Thread country code sources
Bug: b/309357909
Test: Run `atest ThreadNetworkUnitTests`.
Change-Id: I087cc0fc2b6c21fd9d3d4607f30c194214aeb37e

Zhanglong Xia   commited 2024-01-03 10:25:14 +08:00
69c370af8c
Add Thread resource overlay support
This CL adds resource overlay support to allow developers to
change the default configuration of using the location country code.

Bug: b/311324956
Test: Set the resource overlay in cuttlefish, check the default
      configuration via the command `dumpsys thread_network`.

Change-Id: Ide853975e8244f06a382b2eda4844e030539b95d

Zhanglong Xia   commited 2024-01-03 00:29:55 +08:00
125a43c12b
Set Thread Network country code from location country code
This CL selects the Thread country code from location country code.
If the location country code is not avaliable, the country code `WW`
will be selected as the default Thread country code.

This CL also adds Shell commands for developers to override the Thread
country code for testing.

Bug: b/309357909
Test: Run `atest ThreadNetworkUnitTests`.

Change-Id: Id87c293005f0e75922a72854b40c41837b74397f

Zhanglong Xia   commited 2024-01-03 00:27:50 +08:00
d385e7eec5
implement Thread Border Router e2e integration test
This implements a basic border routing test case (ping) and demonstrates a
valid test environment for Thread Border Router test cases.

Later we can add more packet verifications and more test cases.

Bug: 295843010
Test: atest android.net.ThreadBorderRouterTest

Change-Id: Ifb9b6d45539143a227c2bc0ed69b5c3167ef9acd

Handa Wang   commited 2023-12-26 15:24:54 +08:00
806f5a1bec
add hidden method setTestNetworkAsUpstream
`setTestNetworkAsUpstream` allows to specify a test network as the upstream of Thread network. This is going to be used in Thread integration tests. E.g. android.net.thread.BorderRoutingTest.

Bug: 295843010
Test: atest android.net.thread.BorderRoutingTest

Change-Id: I66474e2aa5b3434c4c66078a1d6bd6e522e32ae5

Handa Wang   commited 2023-12-25 16:47:23 +08:00
198a3d495a
Merge "Remove --show-annotation FlaggedApi from flagged-apis-droidstubs" into main
Motomu Utsumi   authored and   Gerrit Code Review   commited 2023-11-22 14:22:04 +00:00
d3d41ac7a4
Remove --show-annotation FlaggedApi from flagged-apis-droidstubs
framework-connectivity-flagged-apis-droidstubs is used by
jarjar-rules-generator to avoid jarjaring flagged apis.
But, this usage of --show-annotation FlaggedApi in the flag is not
supported.
So this CL removes --show-annotation FlaggedApi.
As far as framework-connectivity-flagged-apis-droidstubs contains
flagged APIs, it's fine that this droidstubs also contains non-flagged
APIs.

Test: TH
Bug: 312408311
Change-Id: I2f1f5624d98873420c0c36ac6e31386102211045

Motomu Utsumi   commited 2023-11-22 19:05:48 +09:00
ba5dde84f1
[Thread] clear calling identity before invoking app-supplied callback
Per API council feedback and API guideline at
go/android-api-guidelines#provide-executor, it should call
Binder.clearCallingIdentity() before invoking the app-supplied callbacks
so that the app doesn't use the system-server's identity for permission
check in the callback.

Bug: 309952666
Test: atest ThreadNetworkUnitTests
Change-Id: I3cfbce29c0a516506bb76a44b151a583c8477806

Kangping Dong   commited 2023-11-22 01:54:34 +00:00
98015f3373
Merge "[Thread] add missing guava dependency in tests" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2023-11-15 04:29:20 +00:00
ac0a50beb5
[Thread] add @RequiresPermissions for unregisterXxxCallback APIs
Per API council review suggestions in b/309952666, add the same
permission requirements for the unregister APIs.

Bug: 309952666
Test: atest CtsThreadNetworkTestCases
Change-Id: Idc481c7676ddc5d748fe7803f74dd63981186c09

Kangping Dong   commited 2023-11-13 17:29:07 +08:00
8e44412f7c
[Thread] add missing guava dependency in tests
Change-Id: I383e4a0c78dc3b29fc1aa80d16204166f84ae61b

Kangping Dong   commited 2023-11-09 07:55:00 +00:00
26639b1aff
[Thread] move createRandomDataset to ThreadNetworkController
This commit renames `createRandomDataset` to `createRandomizedDataset`
and moves this method to ThreadNetworkController class.

The reason for moving this method is that we rely on the service side to
know which channels are currently supported by this device and there is
no safe way for ActiveOperationalDataset to created a randomized full
dataset by its own. Moving this method to ThreadNetworkController also
allows us to support future platform-dependend configurations.

Bug: 308117328
Bug: 307939803
Change-Id: I0b0b7b727c3b326ab59bb1299ace15df1ff1ad5e

Kangping Dong   commited 2023-11-08 22:39:33 +08:00
af4f1f576c
[Thread] add ThreadNetworkController APIs
The ThreadNetworkController class provides APIs for managing the Thread
network, for example, attach to a specific network, form a network with
given dataset or update/migrate an existing network.

Bug: 262683651
Test: atest CtsThreadNetworkTestCases
Change-Id: Ib3c267d2c81a8c3c7772ed3c9cd2092487cc941a

Kangping Dong   commited 2023-11-08 17:56:16 +08:00
b1c75dbe8c
Merge "[Thread] fix OperationalDatasetTimestamp#toTlvValue is not loss-less" into main
Kangping Dong   authored and   Gerrit Code Review   commited 2023-11-07 19:20:44 +00:00
9efc28e6d0
[Thread] fix OperationalDatasetTimestamp#toTlvValue is not loss-less
OperationalDatasetTimestamp is saving the timestamp as an Instant
object, and this has the problem that when the dataset timestamp is
written to a TLV, it's going to loss precision as the nanoseconds
of the Instant is converted to "Ticks". This results in bug that
the dataset timestamp doesn't equal to the same value when it's
converted back from a TLV:

```
var timestamp1 = OperationalDatasetTimestamp.fromInstant(Instant.ofEpochSecond(100, 999938900));
byte[] tlv = timestamp1.toTlvValue();
timestamp2 = OperationalDatasetTimestamp.fromTlvValue(tlv);

assertThat(timestamp2).isEqualTo(timestamp1); // This fails!!!
```

Bug: 308408536
Test: atest ThreadNetworkUnitTests CtsThreadNetworkTestCases
Change-Id: I81b482a05337b6d1150edaa28b860034592a4347

Kangping Dong   commited 2023-11-07 13:13:06 +08:00
160b4d38f9
Make FlaggedAPI available to CtsThreadNetworkTestCases
FlaggedAPI will be ignored in udc-mainline-prod.
This makes CtsThreadNetworkTestCases build fail.
This CL updates CtsThreadNetworkTestCases to build against FlaggedAPI
and also updates framework-connectivity-jarjar-rules not to jarjar
FlaggedAPI.

Test: TH
Test: m CtsThreadNetworkTestCases
Change-Id: Ida8872b3bf61b7a59733f5fcec9e7d250efd3e58

Motomu Utsumi   commited 2023-11-07 12:21:45 +09:00
ada9e9877c
Clean up obsolete aliases for Truth.
Bug: 255714762
Test: presubmit
Change-Id: I1a6394f6ff1cd56fac0f7a340857fdaee92fcbab

Krzysztof Kosiński   commited 2023-10-26 07:13:22 +00:00
4656f54cdd
[Thread] add Thread Operational Dataset API
Design doc: go/thread-android-api
Android FR: b/235016403

Bug: 262683651
Change-Id: Icbd4ee4150e3fd78df627c2e726c259e7ee50871

Kangping Dong   commited 2023-10-25 18:13:07 +08:00
7fea5fa6a2
Clean up obsolete aliases for Truth.
Bug: 255714762
Test: presubmit
Change-Id: If91e9af5409fed9d5ccdd13749a0f562c545d589

Krzysztof Kosiński   commited 2023-10-07 00:48:10 +00:00
739ed22507
[Thread] initial Thread network service
This commit sets up the initial Thread network service for the
Android Thread feature which allows an Android device to create
a Thread network and being a Border Router.

See https://www.threadgroup.org/What-is-Thread for background of
Thread.

See b/235016403 for the Android Thread feature request.

Test: lunch aosp_cf_x86_64_tv-userdebug
      m && launch_cvd
      atest CtsThreadNetworkTestCases
Bug: 262683651
Change-Id: Ie1bb23084531f67165ec068ea3ca39592dbc01d1

Kangping Dong   commited 2023-09-12 21:48:57 +08:00
1cec48f3c0