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

Commit 69b6b400 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Convert VtsHalBroadcastradioV1_0/1TargetTest to parameterized gtest"...

Merge "Convert VtsHalBroadcastradioV1_0/1TargetTest to parameterized gtest" into rvc-dev am: a2d2482a am: 50facb5d am: 4fe25518

Change-Id: Ic41b7ab3ded689a2aaad46ca418f062197e92138
parents 3f5aadef 4fe25518
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -22,5 +22,8 @@ cc_test {
        "android.hardware.broadcastradio@1.0",
        "android.hardware.broadcastradio@vts-utils-lib",
    ],
    test_suites: ["general-tests"],
    test_suites: [
        "general-tests",
        "vts",
    ],
}
+26 −32
Original line number Diff line number Diff line
@@ -15,11 +15,13 @@
 */

#define LOG_TAG "BroadcastRadioHidlHalTest"
#include <VtsHalHidlTargetTestBase.h>
#include <android-base/logging.h>
#include <cutils/native_handle.h>
#include <cutils/properties.h>
#include <gtest/gtest.h>
#include <hidl/GtestPrinter.h>
#include <hidl/HidlTransportSupport.h>
#include <hidl/ServiceManagement.h>
#include <utils/threads.h>

#include <android/hardware/broadcastradio/1.0/IBroadcastRadio.h>
@@ -27,28 +29,28 @@
#include <android/hardware/broadcastradio/1.0/ITuner.h>
#include <android/hardware/broadcastradio/1.0/ITunerCallback.h>
#include <android/hardware/broadcastradio/1.0/types.h>
#include <broadcastradio-vts-utils/environment-utils.h>
#include <broadcastradio-vts-utils/hal-1.x-enum-utils.h>

using ::android::sp;
using ::android::Mutex;
using ::android::Condition;
using ::android::Mutex;
using ::android::sp;
using ::android::hardware::Return;
using ::android::hardware::Void;
using ::android::hardware::broadcastradio::V1_0::IBroadcastRadioFactory;
using ::android::hardware::broadcastradio::V1_0::IBroadcastRadio;
using ::android::hardware::broadcastradio::V1_0::ITuner;
using ::android::hardware::broadcastradio::V1_0::ITunerCallback;
using ::android::hardware::broadcastradio::V1_0::Result;
using ::android::hardware::broadcastradio::V1_0::Class;
using ::android::hardware::broadcastradio::V1_0::Properties;
using ::android::hardware::broadcastradio::V1_0::Band;
using ::android::hardware::broadcastradio::V1_0::BandConfig;
using ::android::hardware::broadcastradio::V1_0::Class;
using ::android::hardware::broadcastradio::V1_0::Direction;
using ::android::hardware::broadcastradio::V1_0::ProgramInfo;
using ::android::hardware::broadcastradio::V1_0::IBroadcastRadio;
using ::android::hardware::broadcastradio::V1_0::IBroadcastRadioFactory;
using ::android::hardware::broadcastradio::V1_0::ITuner;
using ::android::hardware::broadcastradio::V1_0::ITunerCallback;
using ::android::hardware::broadcastradio::V1_0::MetaData;
using ::android::hardware::broadcastradio::V1_0::MetadataKey;
using ::android::hardware::broadcastradio::V1_0::MetadataType;
using ::android::hardware::broadcastradio::vts::BroadcastRadioHidlEnvironment;
using ::android::hardware::broadcastradio::V1_0::ProgramInfo;
using ::android::hardware::broadcastradio::V1_0::Properties;
using ::android::hardware::broadcastradio::V1_0::Result;
using ::android::hardware::broadcastradio::V1_0::vts::RadioClassFromString;

#define RETURN_IF_SKIPPED \
    if (skipped) { \
@@ -56,19 +58,19 @@ using ::android::hardware::broadcastradio::vts::BroadcastRadioHidlEnvironment;
        return; \
    }

static BroadcastRadioHidlEnvironment<IBroadcastRadioFactory>* gEnv = nullptr;
// The main test class for Broadcast Radio HIDL HAL.
class BroadcastRadioHidlTest : public ::testing::VtsHalHidlTargetTestBase,
        public ::testing::WithParamInterface<Class> {
class BroadcastRadioHidlTest
    : public ::testing::TestWithParam<std::tuple<std::string, std::string>> {
  protected:
    virtual void SetUp() override {
        ASSERT_EQ(nullptr, mRadio.get());

        radioClass = GetParam();
        radioClass = RadioClassFromString(std::get<1>(GetParam()));

        skipped = false;

        sp<IBroadcastRadioFactory> factory =
            getService<IBroadcastRadioFactory>(gEnv->getServiceName<IBroadcastRadioFactory>());
                IBroadcastRadioFactory::getService(std::get<0>(GetParam()));
        ASSERT_NE(nullptr, factory.get());

        Result connectResult;
@@ -727,16 +729,8 @@ TEST_P(BroadcastRadioHidlTest, IbImagesOnly) {
}

INSTANTIATE_TEST_CASE_P(
    BroadcastRadioHidlTestCases,
    BroadcastRadioHidlTest,
    ::testing::Values(Class::AM_FM, Class::SAT, Class::DT));

int main(int argc, char** argv) {
    gEnv = new BroadcastRadioHidlEnvironment<IBroadcastRadioFactory>;
    ::testing::AddGlobalTestEnvironment(gEnv);
    ::testing::InitGoogleTest(&argc, argv);
    gEnv->init(&argc, argv);
    int status = RUN_ALL_TESTS();
    ALOGI("Test result = %d", status);
    return status;
}
        PerInstance, BroadcastRadioHidlTest,
        testing::Combine(testing::ValuesIn(android::hardware::getAllHalInstanceNames(
                                 IBroadcastRadioFactory::descriptor)),
                         ::testing::Values("AM_FM", "SAT", "DT")),
        android::hardware::PrintInstanceTupleNameToString<>);
 No newline at end of file
+4 −1
Original line number Diff line number Diff line
@@ -25,5 +25,8 @@ cc_test {
        "android.hardware.broadcastradio@vts-utils-lib",
        "libgmock",
    ],
    test_suites: ["general-tests"],
    test_suites: [
        "general-tests",
        "vts",
    ],
}
+16 −26
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

#define LOG_TAG "broadcastradio.vts"

#include <VtsHalHidlTargetTestBase.h>
#include <android-base/logging.h>
#include <android/hardware/broadcastradio/1.1/IBroadcastRadio.h>
#include <android/hardware/broadcastradio/1.1/IBroadcastRadioFactory.h>
@@ -25,13 +24,16 @@
#include <android/hardware/broadcastradio/1.1/types.h>
#include <broadcastradio-utils-1x/Utils.h>
#include <broadcastradio-vts-utils/call-barrier.h>
#include <broadcastradio-vts-utils/environment-utils.h>
#include <broadcastradio-vts-utils/hal-1.x-enum-utils.h>
#include <broadcastradio-vts-utils/mock-timeout.h>
#include <broadcastradio-vts-utils/pointer-utils.h>
#include <cutils/native_handle.h>
#include <cutils/properties.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <hidl/GtestPrinter.h>
#include <hidl/HidlTransportSupport.h>
#include <hidl/ServiceManagement.h>
#include <utils/threads.h>

#include <chrono>
@@ -51,6 +53,7 @@ using testing::DoAll;
using testing::Invoke;
using testing::SaveArg;

using broadcastradio::V1_0::vts::RadioClassFromString;
using broadcastradio::vts::CallBarrier;
using V1_0::BandConfig;
using V1_0::Class;
@@ -59,7 +62,6 @@ using V1_0::MetadataKey;
using V1_0::MetadataType;

using broadcastradio::vts::clearAndWait;
using broadcastradio::vts::BroadcastRadioHidlEnvironment;

static constexpr auto kConfigTimeout = 10s;
static constexpr auto kConnectModuleTimeout = 1s;
@@ -93,10 +95,8 @@ struct TunerCallbackMock : public ITunerCallback {
    MOCK_TIMEOUT_METHOD1(currentProgramInfoChanged, Return<void>(const ProgramInfo&));
};

static BroadcastRadioHidlEnvironment<IBroadcastRadioFactory>* gEnv = nullptr;

class BroadcastRadioHalTest : public ::testing::VtsHalHidlTargetTestBase,
                              public ::testing::WithParamInterface<Class> {
class BroadcastRadioHalTest
    : public ::testing::TestWithParam<std::tuple<std::string, std::string>> {
  protected:
    virtual void SetUp() override;
    virtual void TearDown() override;
@@ -120,11 +120,10 @@ class BroadcastRadioHalTest : public ::testing::VtsHalHidlTargetTestBase,
};

void BroadcastRadioHalTest::SetUp() {
    radioClass = GetParam();
    radioClass = RadioClassFromString(std::get<1>(GetParam()));

    // lookup HIDL service
    auto factory =
        getService<IBroadcastRadioFactory>(gEnv->getServiceName<IBroadcastRadioFactory>());
    auto factory = IBroadcastRadioFactory::getService(std::get<0>(GetParam()));
    ASSERT_NE(nullptr, factory.get());

    // connect radio module
@@ -601,24 +600,15 @@ TEST_P(BroadcastRadioHalTest, VerifyIdentifiersFormat) {
    } while (nextBand());
}

INSTANTIATE_TEST_CASE_P(BroadcastRadioHalTestCases, BroadcastRadioHalTest,
                        ::testing::Values(Class::AM_FM, Class::SAT, Class::DT));
INSTANTIATE_TEST_CASE_P(
        PerInstance, BroadcastRadioHalTest,
        testing::Combine(testing::ValuesIn(android::hardware::getAllHalInstanceNames(
                                 IBroadcastRadioFactory::descriptor)),
                         ::testing::Values("AM_FM", "SAT", "DT")),
        android::hardware::PrintInstanceTupleNameToString<>);

}  // namespace vts
}  // namespace V1_1
}  // namespace broadcastradio
}  // namespace hardware
}  // namespace android

int main(int argc, char** argv) {
    using android::hardware::broadcastradio::V1_1::vts::gEnv;
    using android::hardware::broadcastradio::V1_1::IBroadcastRadioFactory;
    using android::hardware::broadcastradio::vts::BroadcastRadioHidlEnvironment;
    gEnv = new BroadcastRadioHidlEnvironment<IBroadcastRadioFactory>;
    ::testing::AddGlobalTestEnvironment(gEnv);
    ::testing::InitGoogleTest(&argc, argv);
    gEnv->init(&argc, argv);
    int status = RUN_ALL_TESTS();
    ALOGI("Test result = %d", status);
    return status;
}
+38 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 The Android Open Source Project
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -13,29 +13,26 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#ifndef ANDROID_HARDWARE_BROADCASTRADIO_VTS_ENVIRONMENT_UTILS
#define ANDROID_HARDWARE_BROADCASTRADIO_VTS_ENVIRONMENT_UTILS
#pragma once

#include <VtsHalHidlTargetTestEnvBase.h>
namespace android::hardware::broadcastradio::V1_0::vts {

namespace android {
namespace hardware {
namespace broadcastradio {
namespace vts {
using android::hardware::broadcastradio::V1_0::Class;

// Test environment for BroadcastRadio HIDL HAL.
template <typename... T>
class BroadcastRadioHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase {
   public:
    virtual void registerTestServices() override {
        using expander = int[];
        (void)expander{0, (registerTestService<T>(), 0)...};
/**
 * Convert a string of Class name to its enum value. Fail the test if the enum
 * value is not found.
 *
 * @param className string value of a Class enum.
 * @return Class enum that matches the string value.
 */
Class RadioClassFromString(std::string className) {
    if (className == "AM_FM") return Class::AM_FM;
    if (className == "SAT") return Class::SAT;
    if (className == "DT") return Class::DT;
    // Fail the test run.
    CHECK(false) << "Class name not found: " << className;
    // Return some arbitrary enum.
    return Class::AM_FM;
}
};

}  // namespace vts
}  // namespace broadcastradio
}  // namespace hardware
}  // namespace android

#endif  // ANDROID_HARDWARE_BROADCASTRADIO_VTS_ENVIRONMENT_UTILS
}  // namespace android::hardware::broadcastradio::V1_0::vts
Loading