mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
Merge "Fix vibrator VTS failure on older HAL versions" into sc-dev am: 5fe68156d5
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/interfaces/+/14937086 Change-Id: I3160b8bc0d543e5aff6603ecb53c2eba2676039a
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -112,6 +112,11 @@ class VibratorAidl : public testing::TestWithParam<std::tuple<int32_t, int32_t>>
|
||||
int32_t capabilities;
|
||||
};
|
||||
|
||||
inline bool isUnknownOrUnsupported(Status status) {
|
||||
return status.exceptionCode() == Status::EX_UNSUPPORTED_OPERATION ||
|
||||
status.transactionError() == android::UNKNOWN_TRANSACTION;
|
||||
}
|
||||
|
||||
static float getResonantFrequencyHz(sp<IVibrator> vibrator, int32_t capabilities) {
|
||||
float resonantFrequencyHz;
|
||||
Status status = vibrator->getResonantFrequency(&resonantFrequencyHz);
|
||||
@@ -119,7 +124,7 @@ static float getResonantFrequencyHz(sp<IVibrator> vibrator, int32_t capabilities
|
||||
EXPECT_GT(resonantFrequencyHz, 0);
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_NONE);
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
return resonantFrequencyHz;
|
||||
}
|
||||
@@ -131,7 +136,7 @@ static float getFrequencyResolutionHz(sp<IVibrator> vibrator, int32_t capabiliti
|
||||
EXPECT_GT(freqResolutionHz, 0);
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_NONE);
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
return freqResolutionHz;
|
||||
}
|
||||
@@ -147,7 +152,7 @@ static float getFrequencyMinimumHz(sp<IVibrator> vibrator, int32_t capabilities)
|
||||
EXPECT_GT(freqMinimumHz, 0);
|
||||
EXPECT_LE(freqMinimumHz, resonantFrequencyHz);
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
return freqMinimumHz;
|
||||
}
|
||||
@@ -158,7 +163,7 @@ static float getFrequencyMaximumHz(sp<IVibrator> vibrator, int32_t capabilities)
|
||||
if (capabilities & IVibrator::CAP_FREQUENCY_CONTROL) {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_NONE);
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
|
||||
float freqMaximumHz =
|
||||
@@ -219,7 +224,8 @@ TEST_P(VibratorAidl, OnWithCallback) {
|
||||
TEST_P(VibratorAidl, OnCallbackNotSupported) {
|
||||
if (!(capabilities & IVibrator::CAP_ON_CALLBACK)) {
|
||||
sp<CompletionCallback> callback = new CompletionCallback([] {});
|
||||
EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, vibrator->on(250, callback).exceptionCode());
|
||||
Status status = vibrator->on(250, callback);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,8 +246,8 @@ TEST_P(VibratorAidl, ValidateEffect) {
|
||||
EXPECT_GT(lengthMs, 0);
|
||||
usleep(lengthMs * 1000);
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION)
|
||||
<< toString(effect) << " " << toString(strength);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status))
|
||||
<< status << " " << toString(effect) << " " << toString(strength);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -270,7 +276,7 @@ TEST_P(VibratorAidl, ValidateEffectWithCallback) {
|
||||
EXPECT_TRUE(status.isOk());
|
||||
EXPECT_GT(lengthMs, 0);
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
|
||||
if (!status.isOk())
|
||||
@@ -293,7 +299,7 @@ TEST_P(VibratorAidl, ValidateEffectWithCallbackNotSupported) {
|
||||
sp<CompletionCallback> callback = new CompletionCallback([] {});
|
||||
int lengthMs;
|
||||
Status status = vibrator->perform(effect, strength, callback, &lengthMs);
|
||||
EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, status.exceptionCode());
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -311,8 +317,8 @@ TEST_P(VibratorAidl, InvalidEffectsUnsupported) {
|
||||
for (EffectStrength strength : kInvalidEffectStrengths) {
|
||||
int32_t lengthMs;
|
||||
Status status = vibrator->perform(effect, strength, nullptr /*callback*/, &lengthMs);
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION)
|
||||
<< toString(effect) << " " << toString(strength);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status))
|
||||
<< status << " " << toString(effect) << " " << toString(strength);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -338,7 +344,8 @@ TEST_P(VibratorAidl, AmplitudeOutsideRangeFails) {
|
||||
|
||||
TEST_P(VibratorAidl, AmplitudeReturnsUnsupportedMatchingCapabilities) {
|
||||
if ((capabilities & IVibrator::CAP_AMPLITUDE_CONTROL) == 0) {
|
||||
EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, vibrator->setAmplitude(1).exceptionCode());
|
||||
Status status = vibrator->setAmplitude(1);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -362,7 +369,7 @@ TEST_P(VibratorAidl, ExternalAmplitudeControl) {
|
||||
if (supportsExternalAmplitudeControl) {
|
||||
EXPECT_TRUE(amplitudeStatus.isOk());
|
||||
} else {
|
||||
EXPECT_EQ(amplitudeStatus.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(amplitudeStatus)) << amplitudeStatus;
|
||||
}
|
||||
EXPECT_TRUE(vibrator->setExternalControl(false).isOk());
|
||||
} else {
|
||||
@@ -372,8 +379,8 @@ TEST_P(VibratorAidl, ExternalAmplitudeControl) {
|
||||
|
||||
TEST_P(VibratorAidl, ExternalControlUnsupportedMatchingCapabilities) {
|
||||
if ((capabilities & IVibrator::CAP_EXTERNAL_CONTROL) == 0) {
|
||||
EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION,
|
||||
vibrator->setExternalControl(true).exceptionCode());
|
||||
Status status = vibrator->setExternalControl(true);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -410,7 +417,7 @@ TEST_P(VibratorAidl, GetPrimitiveDuration) {
|
||||
if (isPrimitiveSupported) {
|
||||
EXPECT_EQ(Status::EX_NONE, status.exceptionCode());
|
||||
} else {
|
||||
EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, status.exceptionCode());
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -473,8 +480,8 @@ TEST_P(VibratorAidl, ComposeUnsupportedPrimitives) {
|
||||
effect.primitive = primitive;
|
||||
effect.scale = 1.0f;
|
||||
}
|
||||
EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION,
|
||||
vibrator->compose(composite, nullptr).exceptionCode());
|
||||
Status status = vibrator->compose(composite, nullptr);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
vibrator->off();
|
||||
}
|
||||
}
|
||||
@@ -618,8 +625,8 @@ TEST_P(VibratorAidl, AlwaysOn) {
|
||||
EXPECT_EQ(Status::EX_NONE, status.exceptionCode())
|
||||
<< toString(effect) << " " << toString(strength);
|
||||
} else {
|
||||
EXPECT_EQ(Status::EX_UNSUPPORTED_OPERATION, status.exceptionCode())
|
||||
<< toString(effect) << " " << toString(strength);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status))
|
||||
<< status << " " << toString(effect) << " " << toString(strength);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -639,7 +646,7 @@ TEST_P(VibratorAidl, GetQFactor) {
|
||||
ASSERT_GT(qFactor, 0);
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_NONE);
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -668,7 +675,7 @@ TEST_P(VibratorAidl, GetBandwidthAmplitudeMap) {
|
||||
ASSERT_LE(e, 1.0);
|
||||
}
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -690,7 +697,7 @@ TEST_P(VibratorAidl, GetPwleCompositionSizeMax) {
|
||||
ASSERT_NE(maxSize, 0);
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_NONE);
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -703,7 +710,7 @@ TEST_P(VibratorAidl, GetSupportedBraking) {
|
||||
ASSERT_TRUE(isDefaultNoneSupported);
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_NONE);
|
||||
} else {
|
||||
EXPECT_EQ(status.exceptionCode(), Status::EX_UNSUPPORTED_OPERATION);
|
||||
EXPECT_TRUE(isUnknownOrUnsupported(status)) << status;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user