diff --git a/health/2.0/vts/functional/VtsHalHealthV2_0TargetTest.cpp b/health/2.0/vts/functional/VtsHalHealthV2_0TargetTest.cpp index 74fe4fbd83..6e13a9896d 100644 --- a/health/2.0/vts/functional/VtsHalHealthV2_0TargetTest.cpp +++ b/health/2.0/vts/functional/VtsHalHealthV2_0TargetTest.cpp @@ -257,15 +257,21 @@ bool verifyHealthInfo(const HealthInfo& health_info) { using V1_0::BatteryStatus; using V1_0::BatteryHealth; - if (!((health_info.legacy.batteryChargeCounter > 0) && - (health_info.legacy.batteryCurrent != INT32_MIN) && + if (!((health_info.legacy.batteryCurrent != INT32_MIN) && (0 <= health_info.legacy.batteryLevel && health_info.legacy.batteryLevel <= 100) && verifyEnum(health_info.legacy.batteryHealth) && - (health_info.legacy.batteryStatus != BatteryStatus::UNKNOWN) && verifyEnum(health_info.legacy.batteryStatus))) { return false; } + if (health_info.legacy.batteryPresent) { + // If a battery is present, the battery status must be known. + if (!((health_info.legacy.batteryChargeCounter > 0) && + (health_info.legacy.batteryStatus != BatteryStatus::UNKNOWN))) { + return false; + } + } + return true; }