Merge "Convert tetheroffload hal test to use VtsHalHidlTargetTestEnvBase"

This commit is contained in:
Zhuoyao Zhang
2018-02-12 23:01:23 +00:00
committed by Gerrit Code Review
2 changed files with 45 additions and 5 deletions

View File

@@ -17,6 +17,7 @@
#define LOG_TAG "VtsOffloadConfigV1_0TargetTest" #define LOG_TAG "VtsOffloadConfigV1_0TargetTest"
#include <VtsHalHidlTargetTestBase.h> #include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
#include <android-base/stringprintf.h> #include <android-base/stringprintf.h>
#include <android-base/unique_fd.h> #include <android-base/unique_fd.h>
#include <android/hardware/tetheroffload/config/1.0/IOffloadConfig.h> #include <android/hardware/tetheroffload/config/1.0/IOffloadConfig.h>
@@ -77,10 +78,25 @@ int netlinkSocket(unsigned groups) {
return netlinkSocket(NETLINK_NETFILTER, groups); return netlinkSocket(NETLINK_NETFILTER, groups);
} }
// Test environment for OffloadConfig HIDL HAL.
class OffloadConfigHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase {
public:
// get the test environment singleton
static OffloadConfigHidlEnvironment* Instance() {
static OffloadConfigHidlEnvironment* instance = new OffloadConfigHidlEnvironment;
return instance;
}
virtual void registerTestServices() override { registerTestService<IOffloadConfig>(); }
private:
OffloadConfigHidlEnvironment() {}
};
class OffloadConfigHidlTest : public testing::VtsHalHidlTargetTestBase { class OffloadConfigHidlTest : public testing::VtsHalHidlTargetTestBase {
public: public:
virtual void SetUp() override { virtual void SetUp() override {
config = testing::VtsHalHidlTargetTestBase::getService<IOffloadConfig>(); config = testing::VtsHalHidlTargetTestBase::getService<IOffloadConfig>(
OffloadConfigHidlEnvironment::Instance()->getServiceName<IOffloadConfig>());
ASSERT_NE(nullptr, config.get()) << "Could not get HIDL instance"; ASSERT_NE(nullptr, config.get()) << "Could not get HIDL instance";
} }
@@ -175,7 +191,9 @@ TEST_F(OffloadConfigHidlTest, TestSetHandle2OnlyNotOk) {
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(OffloadConfigHidlEnvironment::Instance());
::testing::InitGoogleTest(&argc, argv);
OffloadConfigHidlEnvironment::Instance()->init(&argc, argv);
int status = RUN_ALL_TESTS(); int status = RUN_ALL_TESTS();
ALOGE("Test result with status=%d", status); ALOGE("Test result with status=%d", status);
return status; return status;

View File

@@ -18,6 +18,7 @@
#include <VtsHalHidlTargetCallbackBase.h> #include <VtsHalHidlTargetCallbackBase.h>
#include <VtsHalHidlTargetTestBase.h> #include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
#include <android-base/stringprintf.h> #include <android-base/stringprintf.h>
#include <android-base/unique_fd.h> #include <android-base/unique_fd.h>
#include <android/hardware/tetheroffload/config/1.0/IOffloadConfig.h> #include <android/hardware/tetheroffload/config/1.0/IOffloadConfig.h>
@@ -111,6 +112,23 @@ class TetheringOffloadCallbackArgs {
NatTimeoutUpdate last_params; NatTimeoutUpdate last_params;
}; };
// Test environment for OffloadControl HIDL HAL.
class OffloadControlHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase {
public:
// get the test environment singleton
static OffloadControlHidlEnvironment* Instance() {
static OffloadControlHidlEnvironment* instance = new OffloadControlHidlEnvironment;
return instance;
}
virtual void registerTestServices() override {
registerTestService<IOffloadConfig>();
registerTestService<IOffloadControl>();
}
private:
OffloadControlHidlEnvironment() {}
};
class OffloadControlHidlTestBase : public testing::VtsHalHidlTargetTestBase { class OffloadControlHidlTestBase : public testing::VtsHalHidlTargetTestBase {
public: public:
virtual void SetUp() override { virtual void SetUp() override {
@@ -128,7 +146,8 @@ class OffloadControlHidlTestBase : public testing::VtsHalHidlTargetTestBase {
// The IOffloadConfig HAL is tested more thoroughly elsewhere. He we just // The IOffloadConfig HAL is tested more thoroughly elsewhere. He we just
// setup everything correctly and verify basic readiness. // setup everything correctly and verify basic readiness.
void setupConfigHal() { void setupConfigHal() {
config = testing::VtsHalHidlTargetTestBase::getService<IOffloadConfig>(); config = testing::VtsHalHidlTargetTestBase::getService<IOffloadConfig>(
OffloadControlHidlEnvironment::Instance()->getServiceName<IOffloadConfig>());
ASSERT_NE(nullptr, config.get()) << "Could not get HIDL instance"; ASSERT_NE(nullptr, config.get()) << "Could not get HIDL instance";
unique_fd fd1(conntrackSocket(NFNLGRP_CONNTRACK_NEW | NFNLGRP_CONNTRACK_DESTROY)); unique_fd fd1(conntrackSocket(NFNLGRP_CONNTRACK_NEW | NFNLGRP_CONNTRACK_DESTROY));
@@ -156,7 +175,8 @@ class OffloadControlHidlTestBase : public testing::VtsHalHidlTargetTestBase {
} }
void prepareControlHal() { void prepareControlHal() {
control = testing::VtsHalHidlTargetTestBase::getService<IOffloadControl>(); control = testing::VtsHalHidlTargetTestBase::getService<IOffloadControl>(
OffloadControlHidlEnvironment::Instance()->getServiceName<IOffloadControl>());
ASSERT_NE(nullptr, control.get()) << "Could not get HIDL instance"; ASSERT_NE(nullptr, control.get()) << "Could not get HIDL instance";
control_cb = new TetheringOffloadCallback(); control_cb = new TetheringOffloadCallback();
@@ -660,7 +680,9 @@ TEST_F(OffloadControlHidlTest, RemoveDownstreamBogusPrefixFails) {
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv); ::testing::AddGlobalTestEnvironment(OffloadControlHidlEnvironment::Instance());
::testing::InitGoogleTest(&argc, argv);
OffloadControlHidlEnvironment::Instance()->init(&argc, argv);
int status = RUN_ALL_TESTS(); int status = RUN_ALL_TESTS();
ALOGE("Test result with status=%d", status); ALOGE("Test result with status=%d", status);
return status; return status;