/* * Copyright (C) 2018 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. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ //#define LOG_NDEBUG 0 #define LOG_TAG "codec2_hidl_hal_master_test" #include #include #include #include #include "media_c2_hidl_test_common.h" static ComponentTestEnvironment* gEnv = nullptr; namespace { // google.codec2 Master test setup class Codec2MasterHalTest : public ::testing::VtsHalHidlTargetTestBase { private: typedef ::testing::VtsHalHidlTargetTestBase Super; public: virtual void SetUp() override { Super::SetUp(); mClient = android::Codec2Client::CreateFromService( gEnv->getInstance().c_str()); ASSERT_NE(mClient, nullptr); } protected: static void description(const std::string& description) { RecordProperty("description", description); } std::shared_ptr mClient; }; void displayComponentInfo(const std::vector& compList) { for (size_t i = 0; i < compList.size(); i++) { std::cout << compList[i].name << " | " << compList[i].domain; std::cout << " | " << compList[i].kind << "\n"; } } // List Components TEST_F(Codec2MasterHalTest, ListComponents) { ALOGV("ListComponents Test"); C2String name = mClient->getName(); EXPECT_NE(name.empty(), true) << "Invalid Codec2Client Name"; // Get List of components from HIDL Codec2Client instance const std::vector listTraits = mClient->ListComponents(); if (listTraits.size() == 0) ALOGE("Warning, ComponentInfo list empty"); else { (void)displayComponentInfo; for (size_t i = 0; i < listTraits.size(); i++) { std::shared_ptr listener; std::shared_ptr component; listener.reset(new CodecListener()); ASSERT_NE(listener, nullptr); mClient->createComponent(listTraits[i].name.c_str(), listener, &component); ASSERT_NE(component, nullptr) << "Create component failed for " << listTraits[i].name.c_str(); } } } } // anonymous namespace int main(int argc, char** argv) { gEnv = new ComponentTestEnvironment(); ::testing::InitGoogleTest(&argc, argv); gEnv->init(&argc, argv); int status = gEnv->initFromOptions(argc, argv); if (status == 0) { status = RUN_ALL_TESTS(); LOG(INFO) << "C2 Test result = " << status; } return status; }