Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6807dde authored by Yifan Hong's avatar Yifan Hong
Browse files

health: skip VTS on healthd if vendor HAL is present.

If vendor HAL is present, healthd is not used by the framework. VTS should
skip testing it when this is the case.

Provide a --force option to the test if one wants to test healthd.

Fixes: 118852225
Test: on walleye, test healthd with and without --force.

Change-Id: I85f792f25406b1c02887a0ac273730e719003e2f
parent edf188ad
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ cc_test {
    defaults: ["VtsHalTargetTestDefaults"],
    srcs: ["VtsHalHealthV2_0TargetTest.cpp"],
    static_libs: [
        "libgflags",
        "android.hardware.health@1.0",
        "android.hardware.health@2.0",
    ],
+12 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
#include <android-base/logging.h>
#include <android/hardware/health/2.0/IHealth.h>
#include <android/hardware/health/2.0/types.h>
#include <gflags/gflags.h>

using ::testing::AssertionFailure;
using ::testing::AssertionResult;
@@ -29,6 +30,8 @@ using ::testing::AssertionSuccess;
using ::testing::VtsHalHidlTargetTestBase;
using ::testing::VtsHalHidlTargetTestEnvBase;

DEFINE_bool(force, false, "Force test healthd even when the default instance is present.");

namespace android {
namespace hardware {
namespace health {
@@ -57,6 +60,14 @@ class HealthHidlTest : public ::testing::VtsHalHidlTargetTestBase {
   public:
    virtual void SetUp() override {
        std::string serviceName = HealthHidlEnvironment::Instance()->getServiceName<IHealth>();

        if (serviceName == "backup" && !FLAGS_force &&
            ::testing::VtsHalHidlTargetTestBase::getService<IHealth>() != nullptr) {
            LOG(INFO) << "Skipping tests on healthd because the default instance is present. "
                      << "Use --force if you really want to test healthd.";
            GTEST_SKIP();
        }

        LOG(INFO) << "get service with name:" << serviceName;
        ASSERT_FALSE(serviceName.empty());
        mHealth = ::testing::VtsHalHidlTargetTestBase::getService<IHealth>(serviceName);
@@ -314,6 +325,7 @@ int main(int argc, char** argv) {
    ::testing::AddGlobalTestEnvironment(HealthHidlEnvironment::Instance());
    ::testing::InitGoogleTest(&argc, argv);
    HealthHidlEnvironment::Instance()->init(&argc, argv);
    gflags::ParseCommandLineFlags(&argc, &argv, true /* remove flags */);
    int status = RUN_ALL_TESTS();
    LOG(INFO) << "Test result = " << status;
    return status;