Merge changes from topic "propagate_eap_failure" into pi-dev
* changes: WiFi: Add vts tests for ISupplicantStaIface 1.1 WiFi: supplicant HAL: Modify onEapFailure Callback
This commit is contained in:
commit
ef8890b691
8 changed files with 246 additions and 0 deletions
|
@ -369,4 +369,6 @@ a9d733eb0d555f2a6cb79a212810e81b56ecba0e31a8ffe0916de086a29e4f88 android.hardwar
|
|||
ee08280de21cb41e3ec26d6ed636c701b7f70516e71fb22f4fe60a13e603f406 android.hardware.wifi.hostapd@1.0::IHostapd
|
||||
b2479cd7a417a1cf4f3a22db4e4579e21bac38fdcaf381e2bf10176d05397e01 android.hardware.wifi.hostapd@1.0::types
|
||||
e362203b941f18bd4cba29a62adfa02453ed00d6be5b72cdb6c4d7e0bf394a40 android.hardware.wifi.supplicant@1.1::ISupplicant
|
||||
21757d0e5dd4b7e4bd981a4a20531bca3c32271ad9777b17b74eb5a1ea508384 android.hardware.wifi.supplicant@1.1::ISupplicantStaIface
|
||||
cd4330c3196bda1d642a32abfe23a7d64ebfbda721940643af6867af3b3f0aa9 android.hardware.wifi.supplicant@1.1::ISupplicantStaIfaceCallback
|
||||
10ff2fae516346b86121368ce5790d5accdfcb73983246b813f3d488b66db45a android.hardware.wifi.supplicant@1.1::ISupplicantStaNetwork
|
||||
|
|
|
@ -8,6 +8,8 @@ hidl_interface {
|
|||
},
|
||||
srcs: [
|
||||
"ISupplicant.hal",
|
||||
"ISupplicantStaIface.hal",
|
||||
"ISupplicantStaIfaceCallback.hal",
|
||||
"ISupplicantStaNetwork.hal",
|
||||
],
|
||||
interfaces: [
|
||||
|
|
48
wifi/supplicant/1.1/ISupplicantStaIface.hal
Normal file
48
wifi/supplicant/1.1/ISupplicantStaIface.hal
Normal file
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* Copyright 2018 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.
|
||||
*/
|
||||
|
||||
package android.hardware.wifi.supplicant@1.1;
|
||||
|
||||
import @1.0::ISupplicantStaIface;
|
||||
import @1.1::ISupplicantStaIfaceCallback;
|
||||
import @1.0::SupplicantStatus;
|
||||
|
||||
/**
|
||||
* Interface exposed by the supplicant for each station mode network
|
||||
* interface (e.g wlan0) it controls.
|
||||
*/
|
||||
interface ISupplicantStaIface extends @1.0::ISupplicantStaIface {
|
||||
|
||||
/**
|
||||
* Register for callbacks from this interface.
|
||||
*
|
||||
* These callbacks are invoked for events that are specific to this interface.
|
||||
* Registration of multiple callback objects is supported. These objects must
|
||||
* be automatically deleted when the corresponding client process is dead or
|
||||
* if this interface is removed.
|
||||
*
|
||||
* @param callback An instance of the |ISupplicantStaIfaceCallback| HIDL
|
||||
* interface object.
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |SupplicantStatusCode.SUCCESS|,
|
||||
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
|
||||
* |SupplicantStatusCode.FAILURE_IFACE_INVALID|
|
||||
*/
|
||||
registerCallback_1_1(ISupplicantStaIfaceCallback callback)
|
||||
generates (SupplicantStatus status);
|
||||
};
|
||||
|
45
wifi/supplicant/1.1/ISupplicantStaIfaceCallback.hal
Normal file
45
wifi/supplicant/1.1/ISupplicantStaIfaceCallback.hal
Normal file
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright 2018 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.
|
||||
*/
|
||||
|
||||
package android.hardware.wifi.supplicant@1.1;
|
||||
|
||||
import @1.0::ISupplicantStaIfaceCallback;
|
||||
|
||||
/**
|
||||
* Callback Interface exposed by the supplicant service
|
||||
* for each station mode interface (ISupplicantStaIface).
|
||||
*
|
||||
* Clients need to host an instance of this HIDL interface object and
|
||||
* pass a reference of the object to the supplicant via the
|
||||
* corresponding |ISupplicantStaIface.registerCallback_1_1| method.
|
||||
*/
|
||||
interface ISupplicantStaIfaceCallback extends @1.0::ISupplicantStaIfaceCallback {
|
||||
|
||||
/* EapErrorCode: Error code for EAP or EAP Method as per RFC-4186 */
|
||||
enum EapErrorCode : uint32_t {
|
||||
SIM_GENERAL_FAILURE_AFTER_AUTH = 0,
|
||||
SIM_TEMPORARILY_DENIED = 1026,
|
||||
SIM_NOT_SUBSCRIBED = 1031,
|
||||
SIM_GENERAL_FAILURE_BEFORE_AUTH = 16384,
|
||||
SIM_VENDOR_SPECIFIC_EXPIRED_CERT = 16385,
|
||||
};
|
||||
|
||||
/**
|
||||
* Used to indicate an EAP authentication failure.
|
||||
*/
|
||||
oneway onEapFailure_1_1(EapErrorCode errorCode);
|
||||
};
|
||||
|
|
@ -40,6 +40,7 @@ cc_test {
|
|||
srcs: [
|
||||
"VtsHalWifiSupplicantV1_1TargetTest.cpp",
|
||||
"supplicant_hidl_test.cpp",
|
||||
"supplicant_sta_iface_hidl_test.cpp",
|
||||
"supplicant_sta_network_hidl_test.cpp",
|
||||
],
|
||||
static_libs: [
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "supplicant_hidl_test_utils_1_1.h"
|
||||
|
||||
using ::android::hardware::wifi::supplicant::V1_1::ISupplicant;
|
||||
using ::android::hardware::wifi::supplicant::V1_1::ISupplicantStaIface;
|
||||
using ::android::hardware::wifi::supplicant::V1_1::ISupplicantStaNetwork;
|
||||
using ::android::sp;
|
||||
|
||||
|
@ -28,6 +29,10 @@ sp<ISupplicant> getSupplicant_1_1() {
|
|||
return ISupplicant::castFrom(getSupplicant());
|
||||
}
|
||||
|
||||
sp<ISupplicantStaIface> getSupplicantStaIface_1_1() {
|
||||
return ISupplicantStaIface::castFrom(getSupplicantStaIface());
|
||||
}
|
||||
|
||||
sp<ISupplicantStaNetwork> createSupplicantStaNetwork_1_1() {
|
||||
return ISupplicantStaNetwork::castFrom(createSupplicantStaNetwork());
|
||||
}
|
||||
|
|
|
@ -18,11 +18,15 @@
|
|||
#define SUPPLICANT_HIDL_TEST_UTILS_1_1_H
|
||||
|
||||
#include <android/hardware/wifi/supplicant/1.1/ISupplicant.h>
|
||||
#include <android/hardware/wifi/supplicant/1.1/ISupplicantStaIface.h>
|
||||
#include <android/hardware/wifi/supplicant/1.1/ISupplicantStaNetwork.h>
|
||||
|
||||
android::sp<android::hardware::wifi::supplicant::V1_1::ISupplicant>
|
||||
getSupplicant_1_1();
|
||||
|
||||
android::sp<android::hardware::wifi::supplicant::V1_1::ISupplicantStaIface>
|
||||
getSupplicantStaIface_1_1();
|
||||
|
||||
android::sp<android::hardware::wifi::supplicant::V1_1::ISupplicantStaNetwork>
|
||||
createSupplicantStaNetwork_1_1();
|
||||
|
||||
|
|
|
@ -0,0 +1,139 @@
|
|||
/*
|
||||
* Copyright (C) 2018 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.
|
||||
*/
|
||||
|
||||
#include <android-base/logging.h>
|
||||
|
||||
#include <VtsHalHidlTargetTestBase.h>
|
||||
|
||||
#include <android/hardware/wifi/supplicant/1.1/ISupplicantStaIface.h>
|
||||
|
||||
#include "supplicant_hidl_test_utils.h"
|
||||
#include "supplicant_hidl_test_utils_1_1.h"
|
||||
|
||||
using ::android::sp;
|
||||
using ::android::hardware::hidl_array;
|
||||
using ::android::hardware::hidl_string;
|
||||
using ::android::hardware::hidl_vec;
|
||||
using ::android::hardware::Return;
|
||||
using ::android::hardware::Void;
|
||||
using ::android::hardware::wifi::supplicant::V1_1::ISupplicantStaIface;
|
||||
using ::android::hardware::wifi::supplicant::V1_1::ISupplicantStaIfaceCallback;
|
||||
using ::android::hardware::wifi::supplicant::V1_0::SupplicantStatus;
|
||||
using ::android::hardware::wifi::supplicant::V1_0::SupplicantStatusCode;
|
||||
|
||||
class SupplicantStaIfaceHidlTest
|
||||
: public ::testing::VtsHalHidlTargetTestBase {
|
||||
public:
|
||||
virtual void SetUp() override {
|
||||
startSupplicantAndWaitForHidlService();
|
||||
EXPECT_TRUE(turnOnExcessiveLogging());
|
||||
sta_iface_ = getSupplicantStaIface_1_1();
|
||||
ASSERT_NE(sta_iface_.get(), nullptr);
|
||||
}
|
||||
|
||||
virtual void TearDown() override { stopSupplicant(); }
|
||||
|
||||
protected:
|
||||
// ISupplicantStaIface object used for all tests in this fixture.
|
||||
sp<ISupplicantStaIface> sta_iface_;
|
||||
};
|
||||
|
||||
class IfaceCallback : public ISupplicantStaIfaceCallback {
|
||||
Return<void> onNetworkAdded(uint32_t /* id */) override { return Void(); }
|
||||
Return<void> onNetworkRemoved(uint32_t /* id */) override { return Void(); }
|
||||
Return<void> onStateChanged(
|
||||
ISupplicantStaIfaceCallback::State /* newState */,
|
||||
const hidl_array<uint8_t, 6>& /*bssid */, uint32_t /* id */,
|
||||
const hidl_vec<uint8_t>& /* ssid */) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onAnqpQueryDone(
|
||||
const hidl_array<uint8_t, 6>& /* bssid */,
|
||||
const ISupplicantStaIfaceCallback::AnqpData& /* data */,
|
||||
const ISupplicantStaIfaceCallback::Hs20AnqpData& /* hs20Data */)
|
||||
override {
|
||||
return Void();
|
||||
}
|
||||
virtual Return<void> onHs20IconQueryDone(
|
||||
const hidl_array<uint8_t, 6>& /* bssid */,
|
||||
const hidl_string& /* fileName */,
|
||||
const hidl_vec<uint8_t>& /* data */) override {
|
||||
return Void();
|
||||
}
|
||||
virtual Return<void> onHs20SubscriptionRemediation(
|
||||
const hidl_array<uint8_t, 6>& /* bssid */,
|
||||
ISupplicantStaIfaceCallback::OsuMethod /* osuMethod */,
|
||||
const hidl_string& /* url*/) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onHs20DeauthImminentNotice(
|
||||
const hidl_array<uint8_t, 6>& /* bssid */, uint32_t /* reasonCode */,
|
||||
uint32_t /* reAuthDelayInSec */,
|
||||
const hidl_string& /* url */) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onDisconnected(const hidl_array<uint8_t, 6>& /* bssid */,
|
||||
bool /* locallyGenerated */,
|
||||
ISupplicantStaIfaceCallback::ReasonCode
|
||||
/* reasonCode */) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onAssociationRejected(
|
||||
const hidl_array<uint8_t, 6>& /* bssid */,
|
||||
ISupplicantStaIfaceCallback::StatusCode /* statusCode */,
|
||||
bool /*timedOut */) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onAuthenticationTimeout(
|
||||
const hidl_array<uint8_t, 6>& /* bssid */) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onBssidChanged(
|
||||
ISupplicantStaIfaceCallback::BssidChangeReason /* reason */,
|
||||
const hidl_array<uint8_t, 6>& /* bssid */) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onEapFailure() override { return Void(); }
|
||||
Return<void> onEapFailure_1_1(
|
||||
ISupplicantStaIfaceCallback::EapErrorCode /* eapErrorCode */) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onWpsEventSuccess() override { return Void(); }
|
||||
Return<void> onWpsEventFail(
|
||||
const hidl_array<uint8_t, 6>& /* bssid */,
|
||||
ISupplicantStaIfaceCallback::WpsConfigError /* configError */,
|
||||
ISupplicantStaIfaceCallback::WpsErrorIndication /* errorInd */)
|
||||
override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onWpsEventPbcOverlap() override { return Void(); }
|
||||
Return<void> onExtRadioWorkStart(uint32_t /* id */) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> onExtRadioWorkTimeout(uint32_t /* id*/) override {
|
||||
return Void();
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* RegisterCallback_1_1
|
||||
*/
|
||||
TEST_F(SupplicantStaIfaceHidlTest, RegisterCallback_1_1) {
|
||||
sta_iface_->registerCallback_1_1(
|
||||
new IfaceCallback(), [](const SupplicantStatus& status) {
|
||||
EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
|
||||
});
|
||||
}
|
Loading…
Reference in a new issue