From 36556927b19dc01389fd9f91340f816be4dc09ef Mon Sep 17 00:00:00 2001 From: Ted Wang Date: Tue, 7 Nov 2023 09:13:33 +0000 Subject: [PATCH 1/2] Bluetooth Finder: Interface for Bluetooth Finder Bug: 307897939 Test: m android.hardware.bluetooth.finder-update-api Change-Id: I111b9e20831c094dcb42432e9d83f9fd326ff953 --- bluetooth/finder/aidl/Android.bp | 34 ++++++++++++++ .../hardware/bluetooth/finder/Eid.aidl | 38 +++++++++++++++ .../bluetooth/finder/IBluetoothFinder.aidl | 40 ++++++++++++++++ .../hardware/bluetooth/finder/Eid.aidl | 25 ++++++++++ .../bluetooth/finder/IBluetoothFinder.aidl | 46 +++++++++++++++++++ .../compatibility_matrix.9.xml | 8 ++++ 6 files changed, 191 insertions(+) create mode 100644 bluetooth/finder/aidl/Android.bp create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/Eid.aidl create mode 100644 bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/IBluetoothFinder.aidl create mode 100644 bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl create mode 100644 bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl diff --git a/bluetooth/finder/aidl/Android.bp b/bluetooth/finder/aidl/Android.bp new file mode 100644 index 0000000000..e606d2d996 --- /dev/null +++ b/bluetooth/finder/aidl/Android.bp @@ -0,0 +1,34 @@ +// Copyright (C) 2023 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +aidl_interface { + name: "android.hardware.bluetooth.finder", + vendor_available: true, + srcs: ["android/hardware/bluetooth/finder/*.aidl"], + stability: "vintf", + + backend: { + ndk: { + enabled: true, + }, + java: { + enabled: true, + platform_apis: true, + }, + }, +} diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/Eid.aidl new file mode 100644 index 0000000000..42461c5904 --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/Eid.aidl @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +parcelable Eid { + byte[20] bytes; +} diff --git a/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/IBluetoothFinder.aidl new file mode 100644 index 0000000000..4bc9041499 --- /dev/null +++ b/bluetooth/finder/aidl/aidl_api/android.hardware.bluetooth.finder/current/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/////////////////////////////////////////////////////////////////////////////// +// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. // +/////////////////////////////////////////////////////////////////////////////// + +// This file is a snapshot of an AIDL file. Do not edit it manually. There are +// two cases: +// 1). this is a frozen version file - do not edit this in any case. +// 2). this is a 'current' file. If you make a backwards compatible change to +// the interface (from the latest frozen version), the build system will +// prompt you to update this file with `m -update-api`. +// +// You must not make a backward incompatible change to any AIDL file built +// with the aidl_interface module type with versions property set. The module +// type is used to build AIDL files in a way that they can be used across +// independently updatable components of the system. If a device is shipped +// with such a backward incompatible change, it has a high risk of breaking +// later when a module using the interface is updated, e.g., Mainline modules. + +package android.hardware.bluetooth.finder; +@VintfStability +interface IBluetoothFinder { + void sendEids(in android.hardware.bluetooth.finder.Eid[] eids); + void setPoweredOffFinderMode(in boolean enable); + boolean getPoweredOffFinderMode(); +} diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl new file mode 100644 index 0000000000..ae9b1590ee --- /dev/null +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/Eid.aidl @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.finder; + +/** + * Ephemeral Identifier + */ +@VintfStability +parcelable Eid { + byte[20] bytes; +} diff --git a/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl new file mode 100644 index 0000000000..615739b1cf --- /dev/null +++ b/bluetooth/finder/aidl/android/hardware/bluetooth/finder/IBluetoothFinder.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.bluetooth.finder; + +import android.hardware.bluetooth.finder.Eid; + +@VintfStability +interface IBluetoothFinder { + /** + * API to set the EIDs to the Bluetooth Controller + * + * @param eids array of 20 bytes EID to the Bluetooth + * controller + */ + void sendEids(in Eid[] eids); + + /** + * API to enable the powered-off finder feature, which allows the Bluetooth controller to send + * beacons after the device is powered off. + * + * @param enable true to enable; false to disable + */ + void setPoweredOffFinderMode(in boolean enable); + + /** + * API for retrieving feature enablement status + * + * @return the value last set by setPoweredOffFinderMode, false if setPoweredOffFinderMode was + * never been invoked since boot. + */ + boolean getPoweredOffFinderMode(); +} diff --git a/compatibility_matrices/compatibility_matrix.9.xml b/compatibility_matrices/compatibility_matrix.9.xml index 83d2665cf5..d79e492981 100644 --- a/compatibility_matrices/compatibility_matrix.9.xml +++ b/compatibility_matrices/compatibility_matrix.9.xml @@ -146,6 +146,14 @@ default + + android.hardware.bluetooth.finder + 1 + + IBluetoothFinder + default + + android.hardware.boot From 198746f6bdfbe782c80283a73c7ad0212e5dd36a Mon Sep 17 00:00:00 2001 From: Ted Wang Date: Tue, 14 Nov 2023 05:34:21 +0000 Subject: [PATCH 2/2] Bluetooth Finder: Add Vts and AIDL default implement Bug: 307897345 Bug: 310790725 Test: atest VtsHalBluetoothFinderTargetTest Change-Id: I20eba31695627cde2fdb212657c952f74615ea46 --- bluetooth/finder/aidl/default/Android.bp | 42 +++++++ .../finder/aidl/default/BluetoothFinder.cpp | 37 ++++++ .../finder/aidl/default/BluetoothFinder.h | 39 ++++++ .../bluetooth-finder-service-default.rc | 6 + .../bluetooth-finder-service-default.xml | 7 ++ bluetooth/finder/aidl/default/service.cpp | 46 +++++++ bluetooth/finder/aidl/vts/Android.bp | 41 +++++++ .../vts/VtsHalBluetoothFinderTargetTest.cpp | 114 ++++++++++++++++++ .../vts/VtsHalBluetoothFinderTargetTest.xml | 33 +++++ 9 files changed, 365 insertions(+) create mode 100644 bluetooth/finder/aidl/default/Android.bp create mode 100644 bluetooth/finder/aidl/default/BluetoothFinder.cpp create mode 100644 bluetooth/finder/aidl/default/BluetoothFinder.h create mode 100644 bluetooth/finder/aidl/default/bluetooth-finder-service-default.rc create mode 100644 bluetooth/finder/aidl/default/bluetooth-finder-service-default.xml create mode 100644 bluetooth/finder/aidl/default/service.cpp create mode 100644 bluetooth/finder/aidl/vts/Android.bp create mode 100644 bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp create mode 100644 bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.xml diff --git a/bluetooth/finder/aidl/default/Android.bp b/bluetooth/finder/aidl/default/Android.bp new file mode 100644 index 0000000000..b364ae10b1 --- /dev/null +++ b/bluetooth/finder/aidl/default/Android.bp @@ -0,0 +1,42 @@ +// Copyright (C) 2023 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_binary { + name: "android.hardware.bluetooth.finder-service.default", + relative_install_path: "hw", + init_rc: ["bluetooth-finder-service-default.rc"], + vintf_fragments: [":manifest_android.hardware.bluetooth.finder-service.default.xml"], + vendor: true, + srcs: [ + "BluetoothFinder.cpp", + "service.cpp", + ], + shared_libs: [ + "android.hardware.bluetooth.finder-V1-ndk", + "libbase", + "libbinder_ndk", + "libhidlbase", + "libutils", + "liblog", + ], +} + +filegroup { + name: "manifest_android.hardware.bluetooth.finder-service.default.xml", + srcs: ["bluetooth-finder-service-default.xml"], +} diff --git a/bluetooth/finder/aidl/default/BluetoothFinder.cpp b/bluetooth/finder/aidl/default/BluetoothFinder.cpp new file mode 100644 index 0000000000..236a1f8aa4 --- /dev/null +++ b/bluetooth/finder/aidl/default/BluetoothFinder.cpp @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "BluetoothFinder.h" + +namespace aidl::android::hardware::bluetooth::finder::impl { + +::ndk::ScopedAStatus BluetoothFinder::sendEids(const ::std::vector& keys) { + keys_.insert(keys_.end(), keys.begin(), keys.end()); + return ::ndk::ScopedAStatus::ok(); +} + +::ndk::ScopedAStatus BluetoothFinder::setPoweredOffFinderMode(bool enable) { + pof_enabled_ = enable; + return ::ndk::ScopedAStatus::ok(); +} + +::ndk::ScopedAStatus BluetoothFinder::getPoweredOffFinderMode( + bool* _aidl_return) { + *_aidl_return = pof_enabled_; + return ::ndk::ScopedAStatus::ok(); +} + +} // namespace aidl::android::hardware::bluetooth::finder::impl diff --git a/bluetooth/finder/aidl/default/BluetoothFinder.h b/bluetooth/finder/aidl/default/BluetoothFinder.h new file mode 100644 index 0000000000..16110f6bbe --- /dev/null +++ b/bluetooth/finder/aidl/default/BluetoothFinder.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include + +namespace aidl::android::hardware::bluetooth::finder::impl { + +using ::aidl::android::hardware::bluetooth::finder::BnBluetoothFinder; +using ::aidl::android::hardware::bluetooth::finder::Eid; + +class BluetoothFinder : public BnBluetoothFinder { + public: + BluetoothFinder() = default; + + ::ndk::ScopedAStatus sendEids(const ::std::vector& keys) override; + ::ndk::ScopedAStatus setPoweredOffFinderMode(bool enable) override; + ::ndk::ScopedAStatus getPoweredOffFinderMode(bool* _aidl_return) override; + + private: + bool pof_enabled_; + std::vector keys_; +}; + +} // namespace aidl::android::hardware::bluetooth::finder::impl diff --git a/bluetooth/finder/aidl/default/bluetooth-finder-service-default.rc b/bluetooth/finder/aidl/default/bluetooth-finder-service-default.rc new file mode 100644 index 0000000000..fea07f0a69 --- /dev/null +++ b/bluetooth/finder/aidl/default/bluetooth-finder-service-default.rc @@ -0,0 +1,6 @@ +service vendor.bluetooth.finder-default /vendor/bin/hw/android.hardware.bluetooth.finder.default + class hal + capabilities BLOCK_SUSPEND NET_ADMIN SYS_NICE + user bluetooth + group bluetooth + task_profiles ServicePerformance diff --git a/bluetooth/finder/aidl/default/bluetooth-finder-service-default.xml b/bluetooth/finder/aidl/default/bluetooth-finder-service-default.xml new file mode 100644 index 0000000000..be7c00da55 --- /dev/null +++ b/bluetooth/finder/aidl/default/bluetooth-finder-service-default.xml @@ -0,0 +1,7 @@ + + + android.hardware.bluetooth.finder + 1 + IBluetoothFinder/default + + diff --git a/bluetooth/finder/aidl/default/service.cpp b/bluetooth/finder/aidl/default/service.cpp new file mode 100644 index 0000000000..a117df850d --- /dev/null +++ b/bluetooth/finder/aidl/default/service.cpp @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "aidl.android.hardware.bluetooth.finder.default" + +#include +#include +#include + +#include "BluetoothFinder.h" + +using ::aidl::android::hardware::bluetooth::finder::impl::BluetoothFinder; + +int main(int /* argc */, char** /* argv */) { + ALOGI("Bluetooth Finder HAL registering"); + if (!ABinderProcess_setThreadPoolMaxThreadCount(0)) { + ALOGE("failed to set thread pool max thread count"); + return 1; + } + + std::shared_ptr service = + ndk::SharedRefBase::make(); + std::string instance = + std::string() + BluetoothFinder::descriptor + "/default"; + auto result = + AServiceManager_addService(service->asBinder().get(), instance.c_str()); + if (result == STATUS_OK) { + ABinderProcess_joinThreadPool(); + } else { + ALOGE("Could not register as a service!"); + } + return 0; +} diff --git a/bluetooth/finder/aidl/vts/Android.bp b/bluetooth/finder/aidl/vts/Android.bp new file mode 100644 index 0000000000..6b0285e8f2 --- /dev/null +++ b/bluetooth/finder/aidl/vts/Android.bp @@ -0,0 +1,41 @@ +// Copyright (C) 2023 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package { + default_applicable_licenses: ["hardware_interfaces_license"], +} + +cc_test { + name: "VtsHalBluetoothFinderTargetTest", + defaults: [ + "use_libaidlvintf_gtest_helper_static", + ], + srcs: ["VtsHalBluetoothFinderTargetTest.cpp"], + shared_libs: [ + "libbase", + "libcutils", + "libbinder_ndk", + "liblog", + "libutils", + ], + static_libs: [ + "android.hardware.bluetooth.finder-V1-ndk", + "libbluetooth-types", + ], + test_config: "VtsHalBluetoothFinderTargetTest.xml", + test_suites: [ + "general-tests", + "vts", + ], +} diff --git a/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp b/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp new file mode 100644 index 0000000000..be07a7db24 --- /dev/null +++ b/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.cpp @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +using ::aidl::android::hardware::bluetooth::finder::Eid; +using ::aidl::android::hardware::bluetooth::finder::IBluetoothFinder; +using ::ndk::ScopedAStatus; + +class BluetoothFinderTest : public ::testing::TestWithParam { + public: + virtual void SetUp() override { + ALOGI("SetUp Finder Test"); + bluetooth_finder = IBluetoothFinder::fromBinder( + ndk::SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); + ASSERT_NE(bluetooth_finder, nullptr); + } + + virtual void TearDown() override { + ALOGI("TearDown Finder Test"); + bluetooth_finder = nullptr; + ASSERT_EQ(bluetooth_finder, nullptr); + } + + ScopedAStatus sendEids(uint8_t num); + ScopedAStatus setPoweredOffFinderMode(bool enable); + ScopedAStatus getPoweredOffFinderMode(bool* status); + + private: + std::shared_ptr bluetooth_finder; +}; + +ScopedAStatus BluetoothFinderTest::sendEids(uint8_t numKeys) { + std::vector keys(numKeys); + for (uint_t i = 0; i < numKeys; i++) { + std::array key; + key.fill(i + 1); + keys[i].bytes = key; + } + return bluetooth_finder->sendEids(keys); +} + +ScopedAStatus BluetoothFinderTest::setPoweredOffFinderMode(bool enable) { + return bluetooth_finder->setPoweredOffFinderMode(enable); +} + +ScopedAStatus BluetoothFinderTest::getPoweredOffFinderMode(bool* status) { + return bluetooth_finder->getPoweredOffFinderMode(status); +} + +TEST_P(BluetoothFinderTest, SendEidsSingle) { + ScopedAStatus status = sendEids(1); + ASSERT_TRUE(status.isOk()); +} + +TEST_P(BluetoothFinderTest, Send255Eids) { + ScopedAStatus status = sendEids(255); + ASSERT_TRUE(status.isOk()); +} + +TEST_P(BluetoothFinderTest, setAndGetPoweredOffFinderModeEnable) { + ScopedAStatus status = setPoweredOffFinderMode(true); + ASSERT_TRUE(status.isOk()); + bool pof_status; + status = getPoweredOffFinderMode(&pof_status); + ASSERT_TRUE(status.isOk()); + ASSERT_TRUE(pof_status); +} + +TEST_P(BluetoothFinderTest, setAndGetPoweredOffFinderModeDisable) { + ScopedAStatus status = setPoweredOffFinderMode(false); + ASSERT_TRUE(status.isOk()); + bool pof_status; + status = getPoweredOffFinderMode(&pof_status); + ASSERT_TRUE(status.isOk()); + ASSERT_TRUE(!pof_status); +} + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(BluetoothFinderTest); +INSTANTIATE_TEST_SUITE_P(PerInstance, BluetoothFinderTest, + testing::ValuesIn(android::getAidlHalInstanceNames( + IBluetoothFinder::descriptor)), + android::PrintInstanceNameToString); + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + ABinderProcess_startThreadPool(); + int status = RUN_ALL_TESTS(); + ALOGI("Test result = %d", status); + return status; +} diff --git a/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.xml b/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.xml new file mode 100644 index 0000000000..46053dd39c --- /dev/null +++ b/bluetooth/finder/aidl/vts/VtsHalBluetoothFinderTargetTest.xml @@ -0,0 +1,33 @@ + + + +