Loading bluetooth/ranging/aidl/vts/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ cc_test { "libutils", ], static_libs: [ "android.hardware.bluetooth.ranging-V1-ndk", "android.hardware.bluetooth.ranging-V2-ndk", "libbluetooth-types", ], test_config: "VtsHalBluetoothRangingTargetTest.xml", Loading bluetooth/ranging/aidl/vts/VtsHalBluetoothRangingTargetTest.cpp +117 −0 Original line number Diff line number Diff line Loading @@ -30,12 +30,15 @@ using aidl::android::hardware::bluetooth::ranging:: using aidl::android::hardware::bluetooth::ranging:: BnBluetoothChannelSoundingSessionCallback; using aidl::android::hardware::bluetooth::ranging::ChannelSoudingRawData; using aidl::android::hardware::bluetooth::ranging::ChannelSoundingProcedureData; using aidl::android::hardware::bluetooth::ranging::Config; using aidl::android::hardware::bluetooth::ranging::CsSecurityLevel; using aidl::android::hardware::bluetooth::ranging::IBluetoothChannelSounding; using aidl::android::hardware::bluetooth::ranging:: IBluetoothChannelSoundingSession; using aidl::android::hardware::bluetooth::ranging:: IBluetoothChannelSoundingSessionCallback; using aidl::android::hardware::bluetooth::ranging::ProcedureEnableConfig; using aidl::android::hardware::bluetooth::ranging::RangingResult; using aidl::android::hardware::bluetooth::ranging::Reason; using aidl::android::hardware::bluetooth::ranging::ResultType; Loading @@ -43,6 +46,12 @@ using aidl::android::hardware::bluetooth::ranging::SessionType; using aidl::android::hardware::bluetooth::ranging::VendorSpecificData; using ndk::ScopedAStatus; enum class RangingHalVersion : uint8_t { V_UNAVAILABLE = 0, V_1, V_2, }; class BluetoothChannelSoundingSessionCallback : public BnBluetoothChannelSoundingSessionCallback { public: Loading Loading @@ -80,6 +89,8 @@ class BluetoothRangingTest : public ::testing::TestWithParam<std::string> { ALOGI("SetUp Ranging Test"); bluetooth_channel_sounding_ = IBluetoothChannelSounding::fromBinder( ndk::SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); hal_version_ = GetRangingHalVersion(); ASSERT_GT(hal_version_, RangingHalVersion::V_UNAVAILABLE); ASSERT_NE(bluetooth_channel_sounding_, nullptr); } Loading @@ -95,6 +106,8 @@ class BluetoothRangingTest : public ::testing::TestWithParam<std::string> { ScopedAStatus getSupportedSessionTypes( std::optional<std::vector<SessionType>>* _aidl_return); ScopedAStatus getMaxSupportedCsSecurityLevel(CsSecurityLevel* _aidl_return); ScopedAStatus getSupportedCsSecurityLevels( std::vector<CsSecurityLevel>* _aidl_return); ScopedAStatus openSession( const BluetoothChannelSoundingParameters& in_params, const std::shared_ptr<IBluetoothChannelSoundingSessionCallback>& Loading @@ -111,6 +124,30 @@ class BluetoothRangingTest : public ::testing::TestWithParam<std::string> { return status; } RangingHalVersion GetRangingHalVersion() { int32_t aidl_version = 0; if (bluetooth_channel_sounding_ == nullptr) { return RangingHalVersion::V_UNAVAILABLE; } auto aidl_ret_val = bluetooth_channel_sounding_->getInterfaceVersion(&aidl_version); if (!aidl_ret_val.isOk()) { return RangingHalVersion::V_UNAVAILABLE; } switch (aidl_version) { case 1: return RangingHalVersion::V_1; case 2: return RangingHalVersion::V_2; default: return RangingHalVersion::V_UNAVAILABLE; } return RangingHalVersion::V_UNAVAILABLE; } public: RangingHalVersion hal_version_ = RangingHalVersion::V_UNAVAILABLE; private: std::shared_ptr<IBluetoothChannelSounding> bluetooth_channel_sounding_; }; Loading @@ -130,6 +167,13 @@ ScopedAStatus BluetoothRangingTest::getMaxSupportedCsSecurityLevel( return bluetooth_channel_sounding_->getMaxSupportedCsSecurityLevel( _aidl_return); } ScopedAStatus BluetoothRangingTest::getSupportedCsSecurityLevels( std::vector<CsSecurityLevel>* _aidl_return) { return bluetooth_channel_sounding_->getSupportedCsSecurityLevels( _aidl_return); } ScopedAStatus BluetoothRangingTest::openSession( const BluetoothChannelSoundingParameters& in_params, const std::shared_ptr<IBluetoothChannelSoundingSessionCallback>& Loading @@ -155,11 +199,25 @@ TEST_P(BluetoothRangingTest, GetSupportedSessionTypes) { } TEST_P(BluetoothRangingTest, GetMaxSupportedCsSecurityLevel) { if (hal_version_ > RangingHalVersion::V_1) { GTEST_SKIP(); } CsSecurityLevel security_level; ScopedAStatus status = getMaxSupportedCsSecurityLevel(&security_level); ASSERT_TRUE(status.isOk()); } TEST_P(BluetoothRangingTest, GetSupportedCsSecurityLevels) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::vector<CsSecurityLevel> supported_security_levels; ScopedAStatus status = getSupportedCsSecurityLevels(&supported_security_levels); ASSERT_GT(static_cast<uint8_t>(supported_security_levels.size()), 0); ASSERT_TRUE(status.isOk()); } TEST_P(BluetoothRangingTest, OpenSession) { BluetoothChannelSoundingParameters params; std::shared_ptr<BluetoothChannelSoundingSessionCallback> callback = nullptr; Loading Loading @@ -205,6 +263,9 @@ TEST_P(BluetoothRangingTest, IsAbortedProcedureRequired) { } TEST_P(BluetoothRangingTest, WriteRawData) { if (hal_version_ > RangingHalVersion::V_1) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); Loading @@ -215,6 +276,62 @@ TEST_P(BluetoothRangingTest, WriteRawData) { } } TEST_P(BluetoothRangingTest, WriteProcedureData) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); if (session != nullptr) { ChannelSoundingProcedureData procedure_data; status = session->writeProcedureData(procedure_data); ASSERT_TRUE(status.isOk()); } } TEST_P(BluetoothRangingTest, UpdateChannelSoundingConfig) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); if (session != nullptr) { Config config; status = session->updateChannelSoundingConfig(config); ASSERT_TRUE(status.isOk()); } } TEST_P(BluetoothRangingTest, UpdateProcedureEnableConfig) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); if (session != nullptr) { ProcedureEnableConfig procedure_enable_config; status = session->updateProcedureEnableConfig(procedure_enable_config); ASSERT_TRUE(status.isOk()); } } TEST_P(BluetoothRangingTest, UpdateBleConnInterval) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); if (session != nullptr) { int ble_conn_interval = 10; status = session->updateBleConnInterval(ble_conn_interval); ASSERT_TRUE(status.isOk()); } } TEST_P(BluetoothRangingTest, CloseSession) { std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); Loading Loading
bluetooth/ranging/aidl/vts/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ cc_test { "libutils", ], static_libs: [ "android.hardware.bluetooth.ranging-V1-ndk", "android.hardware.bluetooth.ranging-V2-ndk", "libbluetooth-types", ], test_config: "VtsHalBluetoothRangingTargetTest.xml", Loading
bluetooth/ranging/aidl/vts/VtsHalBluetoothRangingTargetTest.cpp +117 −0 Original line number Diff line number Diff line Loading @@ -30,12 +30,15 @@ using aidl::android::hardware::bluetooth::ranging:: using aidl::android::hardware::bluetooth::ranging:: BnBluetoothChannelSoundingSessionCallback; using aidl::android::hardware::bluetooth::ranging::ChannelSoudingRawData; using aidl::android::hardware::bluetooth::ranging::ChannelSoundingProcedureData; using aidl::android::hardware::bluetooth::ranging::Config; using aidl::android::hardware::bluetooth::ranging::CsSecurityLevel; using aidl::android::hardware::bluetooth::ranging::IBluetoothChannelSounding; using aidl::android::hardware::bluetooth::ranging:: IBluetoothChannelSoundingSession; using aidl::android::hardware::bluetooth::ranging:: IBluetoothChannelSoundingSessionCallback; using aidl::android::hardware::bluetooth::ranging::ProcedureEnableConfig; using aidl::android::hardware::bluetooth::ranging::RangingResult; using aidl::android::hardware::bluetooth::ranging::Reason; using aidl::android::hardware::bluetooth::ranging::ResultType; Loading @@ -43,6 +46,12 @@ using aidl::android::hardware::bluetooth::ranging::SessionType; using aidl::android::hardware::bluetooth::ranging::VendorSpecificData; using ndk::ScopedAStatus; enum class RangingHalVersion : uint8_t { V_UNAVAILABLE = 0, V_1, V_2, }; class BluetoothChannelSoundingSessionCallback : public BnBluetoothChannelSoundingSessionCallback { public: Loading Loading @@ -80,6 +89,8 @@ class BluetoothRangingTest : public ::testing::TestWithParam<std::string> { ALOGI("SetUp Ranging Test"); bluetooth_channel_sounding_ = IBluetoothChannelSounding::fromBinder( ndk::SpAIBinder(AServiceManager_waitForService(GetParam().c_str()))); hal_version_ = GetRangingHalVersion(); ASSERT_GT(hal_version_, RangingHalVersion::V_UNAVAILABLE); ASSERT_NE(bluetooth_channel_sounding_, nullptr); } Loading @@ -95,6 +106,8 @@ class BluetoothRangingTest : public ::testing::TestWithParam<std::string> { ScopedAStatus getSupportedSessionTypes( std::optional<std::vector<SessionType>>* _aidl_return); ScopedAStatus getMaxSupportedCsSecurityLevel(CsSecurityLevel* _aidl_return); ScopedAStatus getSupportedCsSecurityLevels( std::vector<CsSecurityLevel>* _aidl_return); ScopedAStatus openSession( const BluetoothChannelSoundingParameters& in_params, const std::shared_ptr<IBluetoothChannelSoundingSessionCallback>& Loading @@ -111,6 +124,30 @@ class BluetoothRangingTest : public ::testing::TestWithParam<std::string> { return status; } RangingHalVersion GetRangingHalVersion() { int32_t aidl_version = 0; if (bluetooth_channel_sounding_ == nullptr) { return RangingHalVersion::V_UNAVAILABLE; } auto aidl_ret_val = bluetooth_channel_sounding_->getInterfaceVersion(&aidl_version); if (!aidl_ret_val.isOk()) { return RangingHalVersion::V_UNAVAILABLE; } switch (aidl_version) { case 1: return RangingHalVersion::V_1; case 2: return RangingHalVersion::V_2; default: return RangingHalVersion::V_UNAVAILABLE; } return RangingHalVersion::V_UNAVAILABLE; } public: RangingHalVersion hal_version_ = RangingHalVersion::V_UNAVAILABLE; private: std::shared_ptr<IBluetoothChannelSounding> bluetooth_channel_sounding_; }; Loading @@ -130,6 +167,13 @@ ScopedAStatus BluetoothRangingTest::getMaxSupportedCsSecurityLevel( return bluetooth_channel_sounding_->getMaxSupportedCsSecurityLevel( _aidl_return); } ScopedAStatus BluetoothRangingTest::getSupportedCsSecurityLevels( std::vector<CsSecurityLevel>* _aidl_return) { return bluetooth_channel_sounding_->getSupportedCsSecurityLevels( _aidl_return); } ScopedAStatus BluetoothRangingTest::openSession( const BluetoothChannelSoundingParameters& in_params, const std::shared_ptr<IBluetoothChannelSoundingSessionCallback>& Loading @@ -155,11 +199,25 @@ TEST_P(BluetoothRangingTest, GetSupportedSessionTypes) { } TEST_P(BluetoothRangingTest, GetMaxSupportedCsSecurityLevel) { if (hal_version_ > RangingHalVersion::V_1) { GTEST_SKIP(); } CsSecurityLevel security_level; ScopedAStatus status = getMaxSupportedCsSecurityLevel(&security_level); ASSERT_TRUE(status.isOk()); } TEST_P(BluetoothRangingTest, GetSupportedCsSecurityLevels) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::vector<CsSecurityLevel> supported_security_levels; ScopedAStatus status = getSupportedCsSecurityLevels(&supported_security_levels); ASSERT_GT(static_cast<uint8_t>(supported_security_levels.size()), 0); ASSERT_TRUE(status.isOk()); } TEST_P(BluetoothRangingTest, OpenSession) { BluetoothChannelSoundingParameters params; std::shared_ptr<BluetoothChannelSoundingSessionCallback> callback = nullptr; Loading Loading @@ -205,6 +263,9 @@ TEST_P(BluetoothRangingTest, IsAbortedProcedureRequired) { } TEST_P(BluetoothRangingTest, WriteRawData) { if (hal_version_ > RangingHalVersion::V_1) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); Loading @@ -215,6 +276,62 @@ TEST_P(BluetoothRangingTest, WriteRawData) { } } TEST_P(BluetoothRangingTest, WriteProcedureData) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); if (session != nullptr) { ChannelSoundingProcedureData procedure_data; status = session->writeProcedureData(procedure_data); ASSERT_TRUE(status.isOk()); } } TEST_P(BluetoothRangingTest, UpdateChannelSoundingConfig) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); if (session != nullptr) { Config config; status = session->updateChannelSoundingConfig(config); ASSERT_TRUE(status.isOk()); } } TEST_P(BluetoothRangingTest, UpdateProcedureEnableConfig) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); if (session != nullptr) { ProcedureEnableConfig procedure_enable_config; status = session->updateProcedureEnableConfig(procedure_enable_config); ASSERT_TRUE(status.isOk()); } } TEST_P(BluetoothRangingTest, UpdateBleConnInterval) { if (hal_version_ < RangingHalVersion::V_2) { GTEST_SKIP(); } std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); ASSERT_TRUE(status.isOk()); if (session != nullptr) { int ble_conn_interval = 10; status = session->updateBleConnInterval(ble_conn_interval); ASSERT_TRUE(status.isOk()); } } TEST_P(BluetoothRangingTest, CloseSession) { std::shared_ptr<IBluetoothChannelSoundingSession> session; auto status = initBluetoothChannelSoundingSession(&session); Loading