Snap for 10453563 from c6fa931bc8db866072cd6e6026eeddbbdc5817cb to mainline-rkpd-release
Change-Id: Id363a63c2c1182a8fdf8bef568034c2f66d3d1d8
diff --git a/tests/bluetooth/AndroidManifest.xml b/tests/bluetooth/AndroidManifest.xml
index 58f8d77..0b93c20 100644
--- a/tests/bluetooth/AndroidManifest.xml
+++ b/tests/bluetooth/AndroidManifest.xml
@@ -21,7 +21,6 @@
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
- <!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/> -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
diff --git a/tests/bluetooth/AndroidTest.xml b/tests/bluetooth/AndroidTest.xml
index 1850b6b..87be477 100644
--- a/tests/bluetooth/AndroidTest.xml
+++ b/tests/bluetooth/AndroidTest.xml
@@ -19,8 +19,8 @@
<option name="config-descriptor:metadata" key="component" value="bluetooth" />
<!-- Instant apps cannot hold android.permission.BLUETOOTH which makes BT tests irrelevant -->
<option name="config-descriptor:metadata" key="parameter" value="not_instant_app" />
- <option name="config-descriptor:metadata" key="parameter" value="multi_abi" />
- <option name="config-descriptor:metadata" key="parameter" value="secondary_user" />
+ <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" />
+ <option name="config-descriptor:metadata" key="parameter" value="not_secondary_user" />
<option name="config-descriptor:metadata" key="parameter" value="no_foldable_states" />
<target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>
diff --git a/tests/bluetooth/src/android/bluetooth/cts_root/BluetoothCddRootTest.java b/tests/bluetooth/src/android/bluetooth/cts_root/BluetoothCddRootTest.java
index d04d9db..41e8433 100644
--- a/tests/bluetooth/src/android/bluetooth/cts_root/BluetoothCddRootTest.java
+++ b/tests/bluetooth/src/android/bluetooth/cts_root/BluetoothCddRootTest.java
@@ -25,6 +25,7 @@
import static com.google.common.truth.Truth.assertThat;
import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothProfile;
import android.bluetooth.cts.BTAdapterUtils;
import android.bluetooth.cts.TestUtils;
import android.content.Context;
@@ -47,6 +48,7 @@
import org.junit.runner.RunWith;
import java.util.List;
+import java.util.Set;
/**
* Test cases that can only run in rooted environments
@@ -54,6 +56,7 @@
@RunWith(AndroidJUnit4.class)
@SmallTest
public class BluetoothCddRootTest {
+ private static final String TAG = BluetoothCddRootTest.class.getSimpleName();
private static final int BLUETOOTH_CORE_SPECIFICATION_4_2 = 0x08;
private static final int BLUETOOTH_CORE_SPECIFICATION_5_0 = 0x09;
private static final int BLUETOOTH_LOCAL_VERSION_REPORTED_ATOM_ID = 530;
@@ -71,6 +74,8 @@
Assume.assumeTrue(mHasBluetooth);
TestUtils.adoptPermissionAsShellUid(BLUETOOTH_CONNECT,
BLUETOOTH_PRIVILEGED, BLUETOOTH_SCAN, DUMP, PACKAGE_USAGE_STATS);
+ assertThat(TestUtils.getAdoptedShellPermissions()).containsAtLeast(BLUETOOTH_CONNECT,
+ BLUETOOTH_PRIVILEGED, BLUETOOTH_SCAN, DUMP, PACKAGE_USAGE_STATS);
mAdapter = TestUtils.getBluetoothAdapterOrDie();
if (mAdapter.isEnabled()) {
assertThat(BTAdapterUtils.disableAdapter(mAdapter, mContext)).isTrue();
@@ -109,6 +114,34 @@
// TODO: Enforce LE data length extension
}
+ @CddTest(requirements = {"7.4.3/H-1-1"})
+ @Test
+ public void test_H_1_1_AshaRequirements() {
+ Assume.assumeTrue(mHasBluetooth);
+ Assume.assumeTrue("Skip 7.4.3/H-1-1 test for non-BLE devices",
+ TestUtils.isBleSupported(mContext));
+ Assume.assumeFalse("Skip 7.4.3/H-1-1 test for automotive devices",
+ TestUtils.isAutomotive(mContext));
+ Assume.assumeFalse("Skip 7.4.3/H-1-1 test for watch devices",
+ TestUtils.isWatch(mContext));
+ Assume.assumeFalse("Skip 7.4.3/H-1-1 test for TV devices",
+ TestUtils.isTv(mContext));
+ AtomsProto.BluetoothLocalVersionsReported version = getBluetoothVersion();
+ Assume.assumeTrue(version.hciVersion >= BLUETOOTH_CORE_SPECIFICATION_5_0);
+ assertThat(BTAdapterUtils.enableAdapter(mAdapter, mContext)).isTrue();
+ assertThat(mAdapter.getSupportedProfiles()).contains(BluetoothProfile.HEARING_AID);
+ TestUtils.BluetoothCtsServiceConnector connector =
+ new TestUtils.BluetoothCtsServiceConnector(TAG,
+ BluetoothProfile.HEARING_AID, mAdapter, mContext);
+ try {
+ assertThat(connector.openProfileProxyAsync()).isTrue();
+ assertThat(connector.waitForProfileConnect()).isTrue();
+ assertThat(connector.getProfileProxy()).isNotNull();
+ } finally {
+ connector.closeProfileProxy();
+ }
+ }
+
@CddTest(requirements = {"7.4.3/C-12-1"})
@Test
public void test_C_12_1_Bluetooth5Requirements() {
@@ -135,6 +168,8 @@
* @return Bluetooth version proto
*/
private AtomsProto.BluetoothLocalVersionsReported getBluetoothVersion() {
+ Set<String> permissionsAdopted = TestUtils.getAdoptedShellPermissions();
+ String[] permissionArray = permissionsAdopted.toArray(String[]::new);
if (mAdapter.isEnabled()) {
assertThat(BTAdapterUtils.disableAdapter(mAdapter, mContext)).isTrue();
try {
@@ -158,7 +193,7 @@
if (atom == null) {
continue;
}
- Log.i("BluetoothCddTest", "[" + i + "] HCI version is " + atom.hciVersion
+ Log.i("BluetoothCddRootTest", "[" + i + "] HCI version is " + atom.hciVersion
+ ", LMP version is " + atom.lmpVersion);
assertThat(atom.lmpManufacturerName).isGreaterThan(0);
assertThat(atom.lmpVersion).isGreaterThan(0);
@@ -172,6 +207,8 @@
}
i++;
}
+ TestUtils.dropPermissionAsShellUid();
+ TestUtils.adoptPermissionAsShellUid(permissionArray);
return summaryAtom;
}
}