mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:23:37 +00:00
Merge changes from topic "healthd_vts_skip" into pie-vts-dev
am: a35c8253db
Change-Id: I008e46aa0bcdf2e31de18fe9329f332b4e959999
This commit is contained in:
@@ -19,6 +19,7 @@ cc_test {
|
||||
defaults: ["VtsHalTargetTestDefaults"],
|
||||
srcs: ["VtsHalHealthV2_0TargetTest.cpp"],
|
||||
static_libs: [
|
||||
"libgflags",
|
||||
"android.hardware.health@1.0",
|
||||
"android.hardware.health@2.0",
|
||||
],
|
||||
|
||||
@@ -17,11 +17,14 @@
|
||||
#define LOG_TAG "health_hidl_hal_test"
|
||||
|
||||
#include <mutex>
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
||||
#include <VtsHalHidlTargetTestBase.h>
|
||||
#include <android-base/logging.h>
|
||||
#include <android/hardware/health/2.0/IHealth.h>
|
||||
#include <android/hardware/health/2.0/types.h>
|
||||
#include <gflags/gflags.h>
|
||||
|
||||
using ::testing::AssertionFailure;
|
||||
using ::testing::AssertionResult;
|
||||
@@ -29,6 +32,41 @@ using ::testing::AssertionSuccess;
|
||||
using ::testing::VtsHalHidlTargetTestBase;
|
||||
using ::testing::VtsHalHidlTargetTestEnvBase;
|
||||
|
||||
DEFINE_bool(force, false, "Force test healthd even when the default instance is present.");
|
||||
|
||||
// If GTEST_SKIP is not implemented, use our own skipping mechanism
|
||||
#ifndef GTEST_SKIP
|
||||
static std::mutex gSkippedTestsMutex;
|
||||
static std::set<std::string> gSkippedTests;
|
||||
static std::string GetCurrentTestName() {
|
||||
const auto& info = ::testing::UnitTest::GetInstance()->current_test_info();
|
||||
#ifdef GTEST_REMOVE_LEGACY_TEST_CASEAPI_
|
||||
std::string test_suite = info->test_suite_name();
|
||||
#else
|
||||
std::string test_suite = info->test_case_name();
|
||||
#endif
|
||||
return test_suite + "." + info->name();
|
||||
}
|
||||
|
||||
#define GTEST_SKIP() \
|
||||
do { \
|
||||
std::unique_lock<std::mutex> lock(gSkippedTestsMutex); \
|
||||
gSkippedTests.insert(GetCurrentTestName()); \
|
||||
return; \
|
||||
} while (0)
|
||||
|
||||
#define SKIP_IF_SKIPPED() \
|
||||
do { \
|
||||
std::unique_lock<std::mutex> lock(gSkippedTestsMutex); \
|
||||
if (gSkippedTests.find(GetCurrentTestName()) != gSkippedTests.end()) { \
|
||||
std::cerr << "[ SKIPPED ] " << GetCurrentTestName() << std::endl; \
|
||||
return; \
|
||||
} \
|
||||
} while (0)
|
||||
#else
|
||||
#define SKIP_IF_SKIPPED()
|
||||
#endif
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace health {
|
||||
@@ -57,6 +95,14 @@ class HealthHidlTest : public ::testing::VtsHalHidlTargetTestBase {
|
||||
public:
|
||||
virtual void SetUp() override {
|
||||
std::string serviceName = HealthHidlEnvironment::Instance()->getServiceName<IHealth>();
|
||||
|
||||
if (serviceName == "backup" && !FLAGS_force &&
|
||||
::testing::VtsHalHidlTargetTestBase::getService<IHealth>() != nullptr) {
|
||||
LOG(INFO) << "Skipping tests on healthd because the default instance is present. "
|
||||
<< "Use --force if you really want to test healthd.";
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
LOG(INFO) << "get service with name:" << serviceName;
|
||||
ASSERT_FALSE(serviceName.empty());
|
||||
mHealth = ::testing::VtsHalHidlTargetTestBase::getService<IHealth>(serviceName);
|
||||
@@ -111,6 +157,7 @@ AssertionResult isAllOk(const Return<Result>& r) {
|
||||
* unregisterCallback, and update.
|
||||
*/
|
||||
TEST_F(HealthHidlTest, Callbacks) {
|
||||
SKIP_IF_SKIPPED();
|
||||
using namespace std::chrono_literals;
|
||||
sp<Callback> firstCallback = new Callback();
|
||||
sp<Callback> secondCallback = new Callback();
|
||||
@@ -147,6 +194,7 @@ TEST_F(HealthHidlTest, Callbacks) {
|
||||
}
|
||||
|
||||
TEST_F(HealthHidlTest, UnregisterNonExistentCallback) {
|
||||
SKIP_IF_SKIPPED();
|
||||
sp<Callback> callback = new Callback();
|
||||
auto ret = mHealth->unregisterCallback(callback);
|
||||
ASSERT_OK(ret);
|
||||
@@ -228,6 +276,7 @@ bool verifyHealthInfo(const HealthInfo& health_info) {
|
||||
* interface IHealth.
|
||||
*/
|
||||
TEST_F(HealthHidlTest, Properties) {
|
||||
SKIP_IF_SKIPPED();
|
||||
EXPECT_OK(mHealth->getChargeCounter([](auto result, auto value) {
|
||||
EXPECT_VALID_OR_UNSUPPORTED_PROP(result, std::to_string(value), value > 0);
|
||||
}));
|
||||
@@ -269,6 +318,7 @@ int main(int argc, char** argv) {
|
||||
::testing::AddGlobalTestEnvironment(HealthHidlEnvironment::Instance());
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
HealthHidlEnvironment::Instance()->init(&argc, argv);
|
||||
gflags::ParseCommandLineFlags(&argc, &argv, true /* remove flags */);
|
||||
int status = RUN_ALL_TESTS();
|
||||
LOG(INFO) << "Test result = " << status;
|
||||
return status;
|
||||
|
||||
Reference in New Issue
Block a user