Merge "wifi(vts): Separate P2P specific tests"

This commit is contained in:
TreeHugger Robot
2018-11-21 01:36:20 +00:00
committed by Android (Google) Code Review
7 changed files with 95 additions and 15 deletions

View File

@@ -39,7 +39,6 @@ cc_test {
srcs: [
"VtsHalWifiSupplicantV1_0TargetTest.cpp",
"supplicant_hidl_test.cpp",
"supplicant_p2p_iface_hidl_test.cpp",
"supplicant_sta_iface_hidl_test.cpp",
"supplicant_sta_network_hidl_test.cpp",
],
@@ -55,3 +54,23 @@ cc_test {
"libwifi-system-iface",
],
}
cc_test {
name: "VtsHalWifiSupplicantP2pV1_0TargetTest",
defaults: ["VtsHalTargetTestDefaults"],
srcs: [
"VtsHalWifiSupplicantV1_0TargetTest.cpp",
"supplicant_p2p_iface_hidl_test.cpp",
],
static_libs: [
"VtsHalWifiV1_0TargetTestUtil",
"VtsHalWifiSupplicantV1_0TargetTestUtil",
"android.hardware.wifi.supplicant@1.0",
"android.hardware.wifi.supplicant@1.1",
"android.hardware.wifi@1.0",
"libcrypto",
"libgmock",
"libwifi-system",
"libwifi-system-iface",
],
}

View File

@@ -44,7 +44,10 @@ int main(int argc, char** argv) {
::testing::AddGlobalTestEnvironment(gEnv);
::testing::InitGoogleTest(&argc, argv);
gEnv->init(&argc, argv);
int status = RUN_ALL_TESTS();
LOG(INFO) << "Test result = " << status;
int status = gEnv->initFromOptions(argc, argv);
if (status == 0) {
int status = RUN_ALL_TESTS();
LOG(INFO) << "Test result = " << status;
}
return status;
}

View File

@@ -30,6 +30,8 @@ using ::android::hardware::wifi::supplicant::V1_0::SupplicantStatus;
using ::android::hardware::wifi::supplicant::V1_0::SupplicantStatusCode;
using ::android::hardware::wifi::supplicant::V1_0::IfaceType;
extern WifiSupplicantHidlEnvironment* gEnv;
class SupplicantHidlTest : public ::testing::VtsHalHidlTargetTestBase {
public:
virtual void SetUp() override {
@@ -72,10 +74,13 @@ TEST_F(SupplicantHidlTest, ListInterfaces) {
std::find_if(ifaces.begin(), ifaces.end(), [](const auto& iface) {
return iface.type == IfaceType::STA;
}));
EXPECT_NE(ifaces.end(),
std::find_if(ifaces.begin(), ifaces.end(), [](const auto& iface) {
return iface.type == IfaceType::P2P;
}));
if (gEnv->isP2pOn) {
EXPECT_NE(
ifaces.end(),
std::find_if(ifaces.begin(), ifaces.end(), [](const auto& iface) {
return iface.type == IfaceType::P2P;
}));
}
}
/*
@@ -178,8 +183,10 @@ TEST_F(SupplicantHidlTest, SetConcurrencyPriority) {
IfaceType::STA, [](const SupplicantStatus& status) {
EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
});
supplicant_->setConcurrencyPriority(
IfaceType::P2P, [](const SupplicantStatus& status) {
EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
});
if (gEnv->isP2pOn) {
supplicant_->setConcurrencyPriority(
IfaceType::P2P, [](const SupplicantStatus& status) {
EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
});
}
}

View File

@@ -225,7 +225,9 @@ sp<ISupplicant> getSupplicant() {
// For 1.1 supplicant, we need to add interfaces at initialization.
if (is_1_1(supplicant)) {
addSupplicantStaIface_1_1(supplicant);
addSupplicantP2pIface_1_1(supplicant);
if (gEnv->isP2pOn) {
addSupplicantP2pIface_1_1(supplicant);
}
}
return supplicant;
}

View File

@@ -23,6 +23,8 @@
#include <android/hardware/wifi/supplicant/1.0/ISupplicantStaNetwork.h>
#include <android/hardware/wifi/supplicant/1.1/ISupplicant.h>
#include <getopt.h>
#include <VtsHalHidlTargetTestEnvBase.h>
// Used to stop the android wifi framework before every test.
@@ -50,11 +52,48 @@ bool turnOnExcessiveLogging();
class WifiSupplicantHidlEnvironment
: public ::testing::VtsHalHidlTargetTestEnvBase {
public:
protected:
virtual void HidlSetUp() override { stopSupplicant(); }
virtual void HidlTearDown() override {
startSupplicantAndWaitForHidlService();
}
public:
// Whether P2P feature is supported on the device.
bool isP2pOn = true;
void usage(char* me, char* arg) {
fprintf(stderr,
"unrecognized option: %s\n\n"
"usage: %s <gtest options> <test options>\n\n"
"test options are:\n\n"
"-P, --p2p_on: Whether P2P feature is supported\n",
arg, me);
}
int initFromOptions(int argc, char** argv) {
static struct option options[] = {{"p2p_off", no_argument, 0, 'P'},
{0, 0, 0, 0}};
int c;
while ((c = getopt_long(argc, argv, "P", options, NULL)) >= 0) {
switch (c) {
case 'P':
isP2pOn = false;
break;
default:
usage(argv[0], argv[optind]);
return 2;
}
}
if (optind < argc) {
usage(argv[0], argv[optind]);
return 2;
}
return 0;
}
};
#endif /* SUPPLICANT_HIDL_TEST_UTILS_H */

View File

@@ -30,7 +30,10 @@ class WifiSupplicantHidlEnvironment_1_1 : public WifiSupplicantHidlEnvironment {
return instance;
}
virtual void registerTestServices() override {
registerTestService<::android::hardware::wifi::V1_0::IWifi>();
registerTestService<::android::hardware::wifi::V1_1::IWifi>();
registerTestService<
::android::hardware::wifi::supplicant::V1_0::ISupplicant>();
registerTestService<
::android::hardware::wifi::supplicant::V1_1::ISupplicant>();
}
@@ -46,7 +49,10 @@ int main(int argc, char** argv) {
::testing::AddGlobalTestEnvironment(gEnv);
::testing::InitGoogleTest(&argc, argv);
gEnv->init(&argc, argv);
int status = RUN_ALL_TESTS();
LOG(INFO) << "Test result = " << status;
int status = gEnv->initFromOptions(argc, argv);
if (status == 0) {
int status = RUN_ALL_TESTS();
LOG(INFO) << "Test result = " << status;
}
return status;
}

View File

@@ -33,6 +33,8 @@ using ::android::hardware::wifi::supplicant::V1_0::IfaceType;
using ::android::hardware::wifi::supplicant::V1_1::ISupplicant;
using ::android::sp;
extern WifiSupplicantHidlEnvironment* gEnv;
class SupplicantHidlTest : public ::testing::VtsHalHidlTargetTestBase {
public:
virtual void SetUp() override {
@@ -81,6 +83,7 @@ TEST_F(SupplicantHidlTest, AddStaInterface) {
* AddP2pInterface
*/
TEST_F(SupplicantHidlTest, AddP2pInterface) {
if (!gEnv->isP2pOn) return;
ISupplicant::IfaceInfo iface_info;
iface_info.name = getP2pIfaceName();
iface_info.type = IfaceType::P2P;
@@ -120,6 +123,7 @@ TEST_F(SupplicantHidlTest, RemoveStaInterface) {
* RemoveP2pInterface
*/
TEST_F(SupplicantHidlTest, RemoveP2pInterface) {
if (!gEnv->isP2pOn) return;
ISupplicant::IfaceInfo iface_info;
iface_info.name = getP2pIfaceName();
iface_info.type = IfaceType::P2P;