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

Commit b51d4b2f authored by Zhuoyao Zhang's avatar Zhuoyao Zhang
Browse files

Convert tetheroffload hal test to use VtsHalHidlTargetTestEnvBase

* This allow VTS to test tetheroffload hal against all service
  implmentations registered with different service name.

Bug: 64203181
Test: make vts
      vts-tradefed run vts -m VtsHalTetherOffloadConfigV1_0Target
      vts-tradefed run vts -m VtsHalTetherOffloadControlV1_0Target

Change-Id: I0b4f3cf4abd3ffbd15cef7c2126ce6252a65a28e
parent 8f7ff573
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#define LOG_TAG "VtsOffloadConfigV1_0TargetTest"

#include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
#include <android-base/stringprintf.h>
#include <android-base/unique_fd.h>
#include <android/hardware/tetheroffload/config/1.0/IOffloadConfig.h>
@@ -77,10 +78,25 @@ int netlinkSocket(unsigned groups) {
    return netlinkSocket(NETLINK_NETFILTER, groups);
}

// Test environment for OffloadConfig HIDL HAL.
class OffloadConfigHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase {
   public:
    // get the test environment singleton
    static OffloadConfigHidlEnvironment* Instance() {
        static OffloadConfigHidlEnvironment* instance = new OffloadConfigHidlEnvironment;
        return instance;
    }

    virtual void registerTestServices() override { registerTestService<IOffloadConfig>(); }
   private:
    OffloadConfigHidlEnvironment() {}
};

class OffloadConfigHidlTest : public testing::VtsHalHidlTargetTestBase {
   public:
    virtual void SetUp() override {
        config = testing::VtsHalHidlTargetTestBase::getService<IOffloadConfig>();
        config = testing::VtsHalHidlTargetTestBase::getService<IOffloadConfig>(
            OffloadConfigHidlEnvironment::Instance()->getServiceName<IOffloadConfig>());
        ASSERT_NE(nullptr, config.get()) << "Could not get HIDL instance";
    }

@@ -175,7 +191,9 @@ TEST_F(OffloadConfigHidlTest, TestSetHandle2OnlyNotOk) {
}

int main(int argc, char** argv) {
    testing::InitGoogleTest(&argc, argv);
    ::testing::AddGlobalTestEnvironment(OffloadConfigHidlEnvironment::Instance());
    ::testing::InitGoogleTest(&argc, argv);
    OffloadConfigHidlEnvironment::Instance()->init(&argc, argv);
    int status = RUN_ALL_TESTS();
    ALOGE("Test result with status=%d", status);
    return status;
+25 −3
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@

#include <VtsHalHidlTargetCallbackBase.h>
#include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
#include <android-base/stringprintf.h>
#include <android-base/unique_fd.h>
#include <android/hardware/tetheroffload/config/1.0/IOffloadConfig.h>
@@ -111,6 +112,23 @@ class TetheringOffloadCallbackArgs {
    NatTimeoutUpdate last_params;
};

// Test environment for OffloadControl HIDL HAL.
class OffloadControlHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase {
   public:
    // get the test environment singleton
    static OffloadControlHidlEnvironment* Instance() {
        static OffloadControlHidlEnvironment* instance = new OffloadControlHidlEnvironment;
        return instance;
    }

    virtual void registerTestServices() override {
        registerTestService<IOffloadConfig>();
        registerTestService<IOffloadControl>();
    }
   private:
    OffloadControlHidlEnvironment() {}
};

class OffloadControlHidlTestBase : public testing::VtsHalHidlTargetTestBase {
   public:
    virtual void SetUp() override {
@@ -128,7 +146,8 @@ class OffloadControlHidlTestBase : public testing::VtsHalHidlTargetTestBase {
    // The IOffloadConfig HAL is tested more thoroughly elsewhere. He we just
    // setup everything correctly and verify basic readiness.
    void setupConfigHal() {
        config = testing::VtsHalHidlTargetTestBase::getService<IOffloadConfig>();
        config = testing::VtsHalHidlTargetTestBase::getService<IOffloadConfig>(
            OffloadControlHidlEnvironment::Instance()->getServiceName<IOffloadConfig>());
        ASSERT_NE(nullptr, config.get()) << "Could not get HIDL instance";

        unique_fd fd1(conntrackSocket(NFNLGRP_CONNTRACK_NEW | NFNLGRP_CONNTRACK_DESTROY));
@@ -156,7 +175,8 @@ class OffloadControlHidlTestBase : public testing::VtsHalHidlTargetTestBase {
    }

    void prepareControlHal() {
        control = testing::VtsHalHidlTargetTestBase::getService<IOffloadControl>();
        control = testing::VtsHalHidlTargetTestBase::getService<IOffloadControl>(
            OffloadControlHidlEnvironment::Instance()->getServiceName<IOffloadControl>());
        ASSERT_NE(nullptr, control.get()) << "Could not get HIDL instance";

        control_cb = new TetheringOffloadCallback();
@@ -660,7 +680,9 @@ TEST_F(OffloadControlHidlTest, RemoveDownstreamBogusPrefixFails) {
}

int main(int argc, char** argv) {
    testing::InitGoogleTest(&argc, argv);
    ::testing::AddGlobalTestEnvironment(OffloadControlHidlEnvironment::Instance());
    ::testing::InitGoogleTest(&argc, argv);
    OffloadControlHidlEnvironment::Instance()->init(&argc, argv);
    int status = RUN_ALL_TESTS();
    ALOGE("Test result with status=%d", status);
    return status;