From fe0f98eb06b820139b5ecdd548d88833253e133a Mon Sep 17 00:00:00 2001 From: Arthur Ishiguro Date: Thu, 12 Aug 2021 14:43:39 -0700 Subject: [PATCH] Refactors VtsHalContexthubUtils.h Separates files that does/doesn't depend on HIDL. Bug: 194285834 Test: Compile Change-Id: I02e406f13b8459c80904454564ef34a143aa7075 --- .../VtsHalContexthubV1_0TargetTest.cpp | 3 +- .../VtsHalContexthubV1_1TargetTest.cpp | 3 +- .../VtsHalContexthubV1_2TargetTest.cpp | 3 +- .../common/vts/VtsHalContexthubUtils.cpp | 2 +- .../common/vts/VtsHalContexthubUtilsCommon.h | 68 +++++++++++++++++++ ...hubUtils.h => VtsHalContexthubUtilsHidl.h} | 40 ++--------- 6 files changed, 79 insertions(+), 40 deletions(-) create mode 100644 contexthub/common/vts/VtsHalContexthubUtilsCommon.h rename contexthub/common/vts/{VtsHalContexthubUtils.h => VtsHalContexthubUtilsHidl.h} (61%) diff --git a/contexthub/1.0/vts/functional/VtsHalContexthubV1_0TargetTest.cpp b/contexthub/1.0/vts/functional/VtsHalContexthubV1_0TargetTest.cpp index 356ad97327..b3173ef2b9 100644 --- a/contexthub/1.0/vts/functional/VtsHalContexthubV1_0TargetTest.cpp +++ b/contexthub/1.0/vts/functional/VtsHalContexthubV1_0TargetTest.cpp @@ -18,7 +18,8 @@ #include "ContexthubCallbackBase.h" #include "ContexthubHidlTestBase.h" -#include "VtsHalContexthubUtils.h" +#include "VtsHalContexthubUtilsCommon.h" +#include "VtsHalContexthubUtilsHidl.h" #include #include diff --git a/contexthub/1.1/vts/functional/VtsHalContexthubV1_1TargetTest.cpp b/contexthub/1.1/vts/functional/VtsHalContexthubV1_1TargetTest.cpp index acf4be0c45..0589fd8150 100644 --- a/contexthub/1.1/vts/functional/VtsHalContexthubV1_1TargetTest.cpp +++ b/contexthub/1.1/vts/functional/VtsHalContexthubV1_1TargetTest.cpp @@ -18,7 +18,8 @@ #include "ContexthubCallbackBase.h" #include "ContexthubHidlTestBase.h" -#include "VtsHalContexthubUtils.h" +#include "VtsHalContexthubUtilsCommon.h" +#include "VtsHalContexthubUtilsHidl.h" #include #include diff --git a/contexthub/1.2/vts/functional/VtsHalContexthubV1_2TargetTest.cpp b/contexthub/1.2/vts/functional/VtsHalContexthubV1_2TargetTest.cpp index 9ee40ede01..f1f980795e 100644 --- a/contexthub/1.2/vts/functional/VtsHalContexthubV1_2TargetTest.cpp +++ b/contexthub/1.2/vts/functional/VtsHalContexthubV1_2TargetTest.cpp @@ -18,7 +18,8 @@ #include "ContexthubCallbackBase.h" #include "ContexthubHidlTestBase.h" -#include "VtsHalContexthubUtils.h" +#include "VtsHalContexthubUtilsCommon.h" +#include "VtsHalContexthubUtilsHidl.h" #include #include diff --git a/contexthub/common/vts/VtsHalContexthubUtils.cpp b/contexthub/common/vts/VtsHalContexthubUtils.cpp index 5033b416c9..d98232583b 100644 --- a/contexthub/common/vts/VtsHalContexthubUtils.cpp +++ b/contexthub/common/vts/VtsHalContexthubUtils.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "VtsHalContexthubUtils.h" +#include "VtsHalContexthubUtilsHidl.h" #include #include diff --git a/contexthub/common/vts/VtsHalContexthubUtilsCommon.h b/contexthub/common/vts/VtsHalContexthubUtilsCommon.h new file mode 100644 index 0000000000..8b04e3f04f --- /dev/null +++ b/contexthub/common/vts/VtsHalContexthubUtilsCommon.h @@ -0,0 +1,68 @@ +/* + * 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. + */ + +/** + * Utils file for any Context Hub VTS code (i.e. not specific to e.g. HIDL). + */ + +#pragma once + +#include +#include + +namespace android { +namespace hardware { +namespace contexthub { +namespace vts_utils { + +// App ID with vendor "GoogT" (Google Testing), app identifier 0x555555. This +// app ID is reserved and must never appear in the list of loaded apps. +constexpr uint64_t kNonExistentAppId = 0x476f6f6754555555; + +// Helper that does explicit conversion of an enum class to its underlying/base +// type. Useful for stream output of enum values. +template +inline constexpr typename std::underlying_type::type asBaseType(EnumType value) { + return static_cast::type>(value); +} + +// Wait for a callback to occur (signaled by the given future) up to the +// provided timeout. If the future is invalid or the callback does not come +// within the given time, returns false. +template +bool waitForCallback(std::future future, ReturnType* result, + std::chrono::milliseconds timeout = std::chrono::seconds(5)) { + auto expiration = std::chrono::system_clock::now() + timeout; + + EXPECT_NE(result, nullptr); + EXPECT_TRUE(future.valid()); + if (result != nullptr && future.valid()) { + std::future_status status = future.wait_until(expiration); + EXPECT_NE(status, std::future_status::timeout) << "Timed out waiting for callback"; + + if (status == std::future_status::ready) { + *result = future.get(); + return true; + } + } + + return false; +} + +} // namespace vts_utils +} // namespace contexthub +} // namespace hardware +} // namespace android diff --git a/contexthub/common/vts/VtsHalContexthubUtils.h b/contexthub/common/vts/VtsHalContexthubUtilsHidl.h similarity index 61% rename from contexthub/common/vts/VtsHalContexthubUtils.h rename to contexthub/common/vts/VtsHalContexthubUtilsHidl.h index dff1865f4c..c79afc85cf 100644 --- a/contexthub/common/vts/VtsHalContexthubUtils.h +++ b/contexthub/common/vts/VtsHalContexthubUtilsHidl.h @@ -13,6 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +/** + * Utils file for HIDL related VTS code. + */ #pragma once #include @@ -21,8 +25,6 @@ #include #include -#include -#include #include namespace android { @@ -30,20 +32,9 @@ namespace hardware { namespace contexthub { namespace vts_utils { -// App ID with vendor "GoogT" (Google Testing), app identifier 0x555555. This -// app ID is reserved and must never appear in the list of loaded apps. -constexpr uint64_t kNonExistentAppId = 0x476f6f6754555555; - #define ASSERT_OK(result) ASSERT_EQ(result, ::android::hardware::contexthub::V1_0::Result::OK) #define EXPECT_OK(result) EXPECT_EQ(result, ::android::hardware::contexthub::V1_0::Result::OK) -// Helper that does explicit conversion of an enum class to its underlying/base -// type. Useful for stream output of enum values. -template -inline constexpr typename std::underlying_type::type asBaseType(EnumType value) { - return static_cast::type>(value); -} - // Synchronously queries IContexthub::getHubs() and returns the result hidl_vec getHubsSync(V1_0::IContexthub* hubApi); @@ -68,29 +59,6 @@ static std::vector> getHalAndHubIdList() { return parameters; } -// Wait for a callback to occur (signaled by the given future) up to the -// provided timeout. If the future is invalid or the callback does not come -// within the given time, returns false. -template -bool waitForCallback(std::future future, ReturnType* result, - std::chrono::milliseconds timeout = std::chrono::seconds(5)) { - auto expiration = std::chrono::system_clock::now() + timeout; - - EXPECT_NE(result, nullptr); - EXPECT_TRUE(future.valid()); - if (result != nullptr && future.valid()) { - std::future_status status = future.wait_until(expiration); - EXPECT_NE(status, std::future_status::timeout) << "Timed out waiting for callback"; - - if (status == std::future_status::ready) { - *result = future.get(); - return true; - } - } - - return false; -} - } // namespace vts_utils } // namespace contexthub } // namespace hardware