mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Update VTS for AIDL HAL
Bug: b/205762943 Test: atest VtsHalThermalTargetTest Change-Id: I9ae738ea4b27f92445020822877ccd24234fa3c0
This commit is contained in:
@@ -95,20 +95,15 @@ class ThermalAidlTest : public testing::TestWithParam<std::string> {
|
||||
|
||||
mThermalCallback = ndk::SharedRefBase::make<ThermalCallback>();
|
||||
ASSERT_NE(mThermalCallback, nullptr);
|
||||
auto status = mThermal->registerThermalChangedCallback(mThermalCallback);
|
||||
ASSERT_TRUE(status.isOk());
|
||||
// Expect to fail if register again
|
||||
status = mThermal->registerThermalChangedCallback(mThermalCallback);
|
||||
ASSERT_FALSE(status.isOk());
|
||||
ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode());
|
||||
::ndk::ScopedAStatus status = mThermal->registerThermalChangedCallback(mThermalCallback);
|
||||
ASSERT_TRUE(status.isOk()) << status.getMessage();
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
auto status = mThermal->unregisterThermalChangedCallback(mThermalCallback);
|
||||
ASSERT_TRUE(status.isOk());
|
||||
::ndk::ScopedAStatus status = mThermal->unregisterThermalChangedCallback(mThermalCallback);
|
||||
ASSERT_TRUE(status.isOk()) << status.getMessage();
|
||||
// Expect to fail if unregister again
|
||||
status = mThermal->unregisterThermalChangedCallback(mThermalCallback);
|
||||
ASSERT_FALSE(status.isOk());
|
||||
ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode());
|
||||
}
|
||||
|
||||
@@ -121,11 +116,144 @@ class ThermalAidlTest : public testing::TestWithParam<std::string> {
|
||||
// This just calls into and back from our local ThermalChangedCallback impl.
|
||||
TEST_P(ThermalAidlTest, NotifyThrottlingTest) {
|
||||
std::shared_ptr<ThermalCallback> thermalCallback = ndk::SharedRefBase::make<ThermalCallback>();
|
||||
auto ret = thermalCallback->notifyThrottling(kThrottleTemp);
|
||||
ASSERT_TRUE(ret.isOk());
|
||||
::ndk::ScopedAStatus status = thermalCallback->notifyThrottling(kThrottleTemp);
|
||||
ASSERT_TRUE(status.isOk()) << status.getMessage();
|
||||
ASSERT_TRUE(thermalCallback->waitForCallback(200ms));
|
||||
}
|
||||
|
||||
// Test Thermal->registerThermalChangedCallback.
|
||||
TEST_P(ThermalAidlTest, RegisterThermalChangedCallbackTest) {
|
||||
// Expect to fail with same callback
|
||||
::ndk::ScopedAStatus status = mThermal->registerThermalChangedCallback(mThermalCallback);
|
||||
ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode());
|
||||
// Expect to fail with null callback
|
||||
status = mThermal->registerThermalChangedCallback(nullptr);
|
||||
ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode());
|
||||
std::shared_ptr<ThermalCallback> localThermalCallback =
|
||||
ndk::SharedRefBase::make<ThermalCallback>();
|
||||
// Expect to succeed with different callback
|
||||
status = mThermal->registerThermalChangedCallback(localThermalCallback);
|
||||
ASSERT_TRUE(status.isOk()) << status.getMessage();
|
||||
ASSERT_TRUE(localThermalCallback->waitForCallback(200ms));
|
||||
// Remove the local callback
|
||||
status = mThermal->unregisterThermalChangedCallback(localThermalCallback);
|
||||
ASSERT_TRUE(status.isOk()) << status.getMessage();
|
||||
// Expect to fail with null callback
|
||||
status = mThermal->unregisterThermalChangedCallback(nullptr);
|
||||
ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode());
|
||||
}
|
||||
|
||||
// Test Thermal->registerThermalChangedCallbackWithType.
|
||||
TEST_P(ThermalAidlTest, RegisterThermalChangedCallbackWithTypeTest) {
|
||||
// Expect to fail with same callback
|
||||
::ndk::ScopedAStatus status = mThermal->registerThermalChangedCallbackWithType(
|
||||
mThermalCallback, TemperatureType::SKIN);
|
||||
ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode());
|
||||
// Expect to fail with null callback
|
||||
status = mThermal->registerThermalChangedCallbackWithType(nullptr, TemperatureType::SKIN);
|
||||
ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode());
|
||||
std::shared_ptr<ThermalCallback> localThermalCallback =
|
||||
ndk::SharedRefBase::make<ThermalCallback>();
|
||||
// Expect to succeed with different callback
|
||||
status = mThermal->registerThermalChangedCallbackWithType(localThermalCallback,
|
||||
TemperatureType::SKIN);
|
||||
ASSERT_TRUE(status.isOk()) << status.getMessage();
|
||||
ASSERT_TRUE(localThermalCallback->waitForCallback(200ms));
|
||||
// Remove the local callback
|
||||
status = mThermal->unregisterThermalChangedCallback(localThermalCallback);
|
||||
ASSERT_TRUE(status.isOk()) << status.getMessage();
|
||||
// Expect to fail with null callback
|
||||
status = mThermal->unregisterThermalChangedCallback(nullptr);
|
||||
ASSERT_EQ(EX_ILLEGAL_ARGUMENT, status.getExceptionCode());
|
||||
}
|
||||
|
||||
// Test Thermal->getCurrentTemperatures().
|
||||
TEST_P(ThermalAidlTest, TemperatureTest) {
|
||||
std::vector<Temperature> ret;
|
||||
::ndk::ScopedAStatus status = mThermal->getTemperatures(&ret);
|
||||
if (status.isOk()) {
|
||||
for (auto& i : ret) {
|
||||
EXPECT_LT(0u, i.name.size());
|
||||
LOG(INFO) << i.name + " " + toString(i.type) << "\n";
|
||||
}
|
||||
} else {
|
||||
ASSERT_EQ(EX_ILLEGAL_STATE, status.getExceptionCode());
|
||||
}
|
||||
|
||||
auto types = ::ndk::enum_range<TemperatureType>();
|
||||
for (const auto& type : types) {
|
||||
status = mThermal->getTemperaturesWithType(type, &ret);
|
||||
|
||||
if (status.isOk()) {
|
||||
for (auto& i : ret) {
|
||||
EXPECT_EQ(type, i.type) << "Expect type " + toString(type) + " but got " +
|
||||
toString(i.type) + " for " + i.name;
|
||||
EXPECT_LT(0u, i.name.size());
|
||||
}
|
||||
} else {
|
||||
ASSERT_EQ(EX_ILLEGAL_STATE, status.getExceptionCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Test Thermal->getTemperatureThresholds().
|
||||
TEST_P(ThermalAidlTest, TemperatureThresholdTest) {
|
||||
std::vector<TemperatureThreshold> ret;
|
||||
::ndk::ScopedAStatus status = mThermal->getTemperatureThresholds(&ret);
|
||||
if (status.isOk()) {
|
||||
for (auto& i : ret) {
|
||||
EXPECT_LT(0u, i.name.size());
|
||||
LOG(INFO) << i.name + " " + toString(i.type) << "\n";
|
||||
}
|
||||
} else {
|
||||
ASSERT_EQ(EX_ILLEGAL_STATE, status.getExceptionCode());
|
||||
}
|
||||
|
||||
auto types = ::ndk::enum_range<TemperatureType>();
|
||||
for (const auto& type : types) {
|
||||
status = mThermal->getTemperatureThresholdsWithType(type, &ret);
|
||||
|
||||
if (status.isOk()) {
|
||||
for (auto& i : ret) {
|
||||
EXPECT_EQ(type, i.type) << "Expect type " + toString(type) + " but got " +
|
||||
toString(i.type) + " for " + i.name;
|
||||
EXPECT_LT(0u, i.name.size());
|
||||
}
|
||||
} else {
|
||||
ASSERT_EQ(EX_ILLEGAL_STATE, status.getExceptionCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Test Thermal->getCoolingDevices().
|
||||
TEST_P(ThermalAidlTest, CoolingDeviceTest) {
|
||||
std::vector<CoolingDevice> ret;
|
||||
::ndk::ScopedAStatus status = mThermal->getCoolingDevices(&ret);
|
||||
if (status.isOk()) {
|
||||
for (auto& i : ret) {
|
||||
EXPECT_LT(0u, i.name.size());
|
||||
LOG(INFO) << i.name + " " + toString(i.type) << "\n";
|
||||
}
|
||||
} else {
|
||||
ASSERT_EQ(EX_ILLEGAL_STATE, status.getExceptionCode());
|
||||
}
|
||||
|
||||
auto types = ::ndk::enum_range<CoolingType>();
|
||||
for (const auto& type : types) {
|
||||
status = mThermal->getCoolingDevicesWithType(type, &ret);
|
||||
if (status.isOk()) {
|
||||
ASSERT_TRUE(status.isOk());
|
||||
for (auto& i : ret) {
|
||||
EXPECT_EQ(type, i.type) << "Expect type " + toString(type) + " but got " +
|
||||
toString(i.type) + " for " + i.name;
|
||||
EXPECT_LT(0u, i.name.size());
|
||||
}
|
||||
} else {
|
||||
ASSERT_EQ(EX_ILLEGAL_STATE, status.getExceptionCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(ThermalAidlTest);
|
||||
INSTANTIATE_TEST_SUITE_P(
|
||||
Thermal, ThermalAidlTest,
|
||||
|
||||
Reference in New Issue
Block a user