• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 #pragma clang diagnostic ignored "-Wweak-vtables"
19 
20 #include <VtsCoreUtil.h>
21 #include <android/hardware/wifi/supplicant/1.2/ISupplicant.h>
22 #include <android/hardware/wifi/supplicant/1.2/ISupplicantP2pIface.h>
23 #include <android/hardware/wifi/supplicant/1.2/ISupplicantStaIface.h>
24 #include <android/hardware/wifi/supplicant/1.2/ISupplicantStaNetwork.h>
25 #include <gtest/gtest.h>
26 
27 android::sp<android::hardware::wifi::supplicant::V1_2::ISupplicant>
28 getSupplicant_1_2(const std::string& supplicant_instance_name, bool isP2pOn);
29 
30 android::sp<android::hardware::wifi::supplicant::V1_2::ISupplicantStaIface>
31 getSupplicantStaIface_1_2(
32     const android::sp<android::hardware::wifi::supplicant::V1_2::ISupplicant>&
33         supplicant);
34 
35 android::sp<android::hardware::wifi::supplicant::V1_2::ISupplicantStaNetwork>
36 createSupplicantStaNetwork_1_2(
37     const android::sp<android::hardware::wifi::supplicant::V1_2::ISupplicant>&
38         supplicant);
39 
40 android::sp<android::hardware::wifi::supplicant::V1_2::ISupplicantP2pIface>
41 getSupplicantP2pIface_1_2(
42     const android::sp<android::hardware::wifi::supplicant::V1_2::ISupplicant>&
43         supplicant);
44 
45 class SupplicantHidlTestBase
46     : public ::testing::TestWithParam<std::tuple<std::string, std::string>> {
47    public:
SetUp()48     virtual void SetUp() override {
49         wifi_v1_0_instance_name_ = std::get<0>(GetParam());
50         supplicant_v1_2_instance_name_ = std::get<1>(GetParam());
51         isP2pOn_ =
52             testing::deviceSupportsFeature("android.hardware.wifi.direct");
53         // Stop Framework
54         std::system("/system/bin/stop");
55         stopSupplicant(wifi_v1_0_instance_name_);
56         startSupplicantAndWaitForHidlService(wifi_v1_0_instance_name_,
57                                              supplicant_v1_2_instance_name_);
58         supplicant_ =
59             getSupplicant_1_2(supplicant_v1_2_instance_name_, isP2pOn_);
60         ASSERT_NE(supplicant_.get(), nullptr);
61         EXPECT_TRUE(turnOnExcessiveLogging(supplicant_));
62     }
63 
TearDown()64     virtual void TearDown() override {
65         stopSupplicant(wifi_v1_0_instance_name_);
66         // Start Framework
67         std::system("/system/bin/start");
68     }
69 
70    protected:
71     android::sp<android::hardware::wifi::supplicant::V1_2::ISupplicant>
72         supplicant_;
73     bool isP2pOn_ = false;
74     std::string wifi_v1_0_instance_name_;
75     std::string supplicant_v1_2_instance_name_;
76 };
77