diff options
author | Lais Andrade <lsandrade@google.com> | 2021-06-10 16:38:34 +0100 |
---|---|---|
committer | Lais Andrade <lsandrade@google.com> | 2021-06-11 12:29:11 +0100 |
commit | 4b54b1fc491895adec637d0346dad1628cb601fb (patch) | |
tree | a5502312463487223b3b9e0033c4593620d0b3b6 /vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp | |
parent | 083efb0be16555b07d670ed710848eb9d2e86342 (diff) |
Fix vibrator VTS failure on older HAL versions
Fix tests to expect STATUS_UNKNOWN_TRANSACTION as well as
EX_UNSUPPORTED_OPERATION when the vibrator does not have a capability
required for the method being tested.
Older versions of the HAL will return that status code instead of
unsupported, as explained at:
https://source.android.com/devices/architecture/aidl/stable-aidl#versioning-interfaces
Fix: 190526054
Test: VtsHalVibratorTargetTest & VtsHalVibratorManagerTargetTest
Change-Id: I538843fbbdbf8353cd57f1c83392baeabdcbadd2
Diffstat (limited to 'vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp')
-rw-r--r-- | vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp b/vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp index 9789188858..44fa3be7ab 100644 --- a/vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp +++ b/vibrator/aidl/vts/VtsHalVibratorManagerTargetTest.cpp @@ -71,6 +71,11 @@ class VibratorAidl : public testing::TestWithParam<std::string> { std::vector<int32_t> vibratorIds; }; +inline bool isUnknownOrUnsupported(Status status) { + return status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION || + status.transactionError() == android::UNKNOWN_TRANSACTION; +} + TEST_P(VibratorAidl, ValidateExistingVibrators) { sp<IVibrator> vibrator; for (auto& id : vibratorIds) { @@ -101,8 +106,8 @@ TEST_P(VibratorAidl, PrepareSyncedEmptySetIsInvalid) { TEST_P(VibratorAidl, PrepareSyncedNotSupported) { if (!(capabilities & IVibratorManager::CAP_SYNC)) { - EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, - manager->prepareSynced(vibratorIds).exceptionCode()); + Status status = manager->prepareSynced(vibratorIds); + EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; } } @@ -116,8 +121,8 @@ TEST_P(VibratorAidl, PrepareOnNotSupported) { for (auto& id : vibratorIds) { EXPECT_TRUE(manager->getVibrator(id, &vibrator).isOk()); ASSERT_NE(vibrator, nullptr); - EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, - vibrator->on(durationMs, nullptr).exceptionCode()); + Status status = vibrator->on(durationMs, nullptr); + EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; } EXPECT_TRUE(manager->cancelSynced().isOk()); } @@ -134,7 +139,7 @@ TEST_P(VibratorAidl, PreparePerformNotSupported) { ASSERT_NE(vibrator, nullptr); int32_t lengthMs = 0; Status status = vibrator->perform(kEffects[0], kEffectStrengths[0], nullptr, &lengthMs); - EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, status.exceptionCode()); + EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; } EXPECT_TRUE(manager->cancelSynced().isOk()); } @@ -157,7 +162,7 @@ TEST_P(VibratorAidl, PrepareComposeNotSupported) { EXPECT_TRUE(manager->getVibrator(id, &vibrator).isOk()); ASSERT_NE(vibrator, nullptr); Status status = vibrator->compose(composite, nullptr); - EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, status.exceptionCode()); + EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; } EXPECT_TRUE(manager->cancelSynced().isOk()); } @@ -191,8 +196,8 @@ TEST_P(VibratorAidl, TriggerWithCallback) { TEST_P(VibratorAidl, TriggerSyncNotSupported) { if (!(capabilities & IVibratorManager::CAP_SYNC)) { - EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, - manager->triggerSynced(nullptr).exceptionCode()); + Status status = manager->triggerSynced(nullptr); + EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; } } @@ -201,8 +206,8 @@ TEST_P(VibratorAidl, TriggerCallbackNotSupported) { if (!(capabilities & IVibratorManager::CAP_TRIGGER_CALLBACK)) { sp<CompletionCallback> callback = new CompletionCallback([] {}); EXPECT_TRUE(manager->prepareSynced(vibratorIds).isOk()); - EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, - manager->triggerSynced(callback).exceptionCode()); + Status status = manager->triggerSynced(callback); + EXPECT_TRUE(isUnknownOrUnsupported(status)) << status; } } |