summaryrefslogtreecommitdiff
path: root/services/powermanager/tests/PowerHalLoaderTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/powermanager/tests/PowerHalLoaderTest.cpp')
-rw-r--r--services/powermanager/tests/PowerHalLoaderTest.cpp110
1 files changed, 0 insertions, 110 deletions
diff --git a/services/powermanager/tests/PowerHalLoaderTest.cpp b/services/powermanager/tests/PowerHalLoaderTest.cpp
deleted file mode 100644
index 058e1b5ca8..0000000000
--- a/services/powermanager/tests/PowerHalLoaderTest.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * 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.
- * 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_TAG "PowerHalLoaderTest"
-
-#include <android-base/logging.h>
-#include <android/hardware/power/1.1/IPower.h>
-#include <android/hardware/power/IPower.h>
-#include <gtest/gtest.h>
-#include <powermanager/PowerHalLoader.h>
-
-#include <future>
-
-using IPowerV1_0 = android::hardware::power::V1_0::IPower;
-using IPowerV1_1 = android::hardware::power::V1_1::IPower;
-using IPowerAidl = android::hardware::power::IPower;
-
-using namespace android;
-using namespace android::power;
-using namespace testing;
-
-// -------------------------------------------------------------------------------------------------
-
-template <typename T>
-sp<T> loadHal();
-
-template <>
-sp<IPowerAidl> loadHal<IPowerAidl>() {
- return PowerHalLoader::loadAidl();
-}
-
-template <>
-sp<IPowerV1_0> loadHal<IPowerV1_0>() {
- return PowerHalLoader::loadHidlV1_0();
-}
-
-template <>
-sp<IPowerV1_1> loadHal<IPowerV1_1>() {
- return PowerHalLoader::loadHidlV1_1();
-}
-
-// -------------------------------------------------------------------------------------------------
-
-template <typename T>
-class PowerHalLoaderTest : public Test {
-public:
- sp<T> load() { return ::loadHal<T>(); }
- void unload() { PowerHalLoader::unloadAll(); }
-};
-
-// -------------------------------------------------------------------------------------------------
-
-typedef ::testing::Types<IPowerAidl, IPowerV1_0, IPowerV1_1> PowerHalTypes;
-TYPED_TEST_SUITE(PowerHalLoaderTest, PowerHalTypes);
-
-TYPED_TEST(PowerHalLoaderTest, TestLoadsOnlyOnce) {
- sp<TypeParam> firstHal = this->load();
- if (firstHal == nullptr) {
- ALOGE("Power HAL not available. Skipping test.");
- return;
- }
- sp<TypeParam> secondHal = this->load();
- ASSERT_EQ(firstHal, secondHal);
-}
-
-TYPED_TEST(PowerHalLoaderTest, TestUnload) {
- sp<TypeParam> firstHal = this->load();
- if (firstHal == nullptr) {
- ALOGE("Power HAL not available. Skipping test.");
- return;
- }
- this->unload();
- sp<TypeParam> secondHal = this->load();
- ASSERT_NE(secondHal, nullptr);
- ASSERT_NE(firstHal, secondHal);
-}
-
-TYPED_TEST(PowerHalLoaderTest, TestLoadMultiThreadLoadsOnlyOnce) {
- std::vector<std::future<sp<TypeParam>>> futures;
- for (int i = 0; i < 10; i++) {
- futures.push_back(
- std::async(std::launch::async, &PowerHalLoaderTest<TypeParam>::load, this));
- }
-
- futures[0].wait();
- sp<TypeParam> firstHal = futures[0].get();
- if (firstHal == nullptr) {
- ALOGE("Power HAL not available. Skipping test.");
- return;
- }
-
- for (int i = 1; i < 10; i++) {
- futures[i].wait();
- sp<TypeParam> currentHal = futures[i].get();
- ASSERT_EQ(firstHal, currentHal);
- }
-}