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

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

Convert audio hal test to use VtsHalHidlTargetTestEnvBase

Bug: 64203181
Test: make vts
      vts-tradefed run vts -m VtsHalAudioV2_0Target

Change-Id: I1f85216c992eabf70f7e907b5d2afc4fb59cbb4a
parent 744e71e3
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@
#include <functional>
#include <functional>
#include <list>
#include <list>


#include <VtsHalHidlTargetTestEnvBase.h>
#include <gtest/gtest.h>
#include <gtest/gtest.h>


namespace android {
namespace android {
@@ -33,13 +34,13 @@ namespace utility {
 * Avoid destroying static objects after main return.
 * Avoid destroying static objects after main return.
 * Post main return destruction leads to incorrect gtest timing measurements as
 * Post main return destruction leads to incorrect gtest timing measurements as
 * well as harder debuging if anything goes wrong during destruction. */
 * well as harder debuging if anything goes wrong during destruction. */
class Environment : public ::testing::Environment {
class Environment : public ::testing::VtsHalHidlTargetTestEnvBase {
   public:
   public:
    using TearDownFunc = std::function<void()>;
    using TearDownFunc = std::function<void()>;
    void registerTearDown(TearDownFunc&& tearDown) { tearDowns.push_back(std::move(tearDown)); }
    void registerTearDown(TearDownFunc&& tearDown) { tearDowns.push_back(std::move(tearDown)); }


   private:
   private:
    void TearDown() override {
    void HidlTearDown() override {
        // Call the tear downs in reverse order of insertion
        // Call the tear downs in reverse order of insertion
        for (auto& tearDown : tearDowns) {
        for (auto& tearDown : tearDowns) {
            tearDown();
            tearDown();
+10 −3
Original line number Original line Diff line number Diff line
@@ -88,8 +88,13 @@ using ::android::hardware::audio::common::V2_0::ThreadInfo;


using namespace ::android::hardware::audio::common::test::utility;
using namespace ::android::hardware::audio::common::test::utility;


class AudioHidlTestEnvironment : public ::Environment {
   public:
    virtual void registerTestServices() override { registerTestService<IDevicesFactory>(); }
};

// Instance to register global tearDown
// Instance to register global tearDown
static Environment* environment;
static AudioHidlTestEnvironment* environment;


class HidlTest : public ::testing::VtsHalHidlTargetTestBase {
class HidlTest : public ::testing::VtsHalHidlTargetTestBase {
   protected:
   protected:
@@ -109,7 +114,8 @@ class AudioHidlTest : public HidlTest {


        if (devicesFactory == nullptr) {
        if (devicesFactory == nullptr) {
            environment->registerTearDown([] { devicesFactory.clear(); });
            environment->registerTearDown([] { devicesFactory.clear(); });
            devicesFactory = ::testing::VtsHalHidlTargetTestBase::getService<IDevicesFactory>();
            devicesFactory = ::testing::VtsHalHidlTargetTestBase::getService<IDevicesFactory>(
                environment->getServiceName<IDevicesFactory>("default"));
        }
        }
        ASSERT_TRUE(devicesFactory != nullptr);
        ASSERT_TRUE(devicesFactory != nullptr);
    }
    }
@@ -1265,9 +1271,10 @@ TEST_F(BoolAccessorPrimaryHidlTest, setGetHac) {
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////


int main(int argc, char** argv) {
int main(int argc, char** argv) {
    environment = new Environment;
    environment = new AudioHidlTestEnvironment;
    ::testing::AddGlobalTestEnvironment(environment);
    ::testing::AddGlobalTestEnvironment(environment);
    ::testing::InitGoogleTest(&argc, argv);
    ::testing::InitGoogleTest(&argc, argv);
    environment->init(&argc, argv);
    int status = RUN_ALL_TESTS();
    int status = RUN_ALL_TESTS();
    return status;
    return status;
}
}