mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 05:49:27 +00:00
Merge changes from topic "contexthub_hal_1_2"
* changes: Add VTS tests for Context Hub HAL 1.2 Adds default (mock) Context Hub HAL 1.2 impl Adds Context Hub HAL v1.2
This commit is contained in:
committed by
Android (Google) Code Review
commit
70d0e89dcd
@@ -177,7 +177,7 @@
|
||||
</hal>
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.hardware.contexthub</name>
|
||||
<version>1.0-1</version>
|
||||
<version>1.0-2</version>
|
||||
<interface>
|
||||
<name>IContexthub</name>
|
||||
<instance>default</instance>
|
||||
|
||||
@@ -38,5 +38,8 @@ cc_binary {
|
||||
"liblog",
|
||||
"libutils",
|
||||
],
|
||||
header_libs: [
|
||||
"android.hardware.contexthub@1.X-common-impl",
|
||||
],
|
||||
vintf_fragments: ["android.hardware.contexthub@1.1.xml"],
|
||||
}
|
||||
|
||||
@@ -23,81 +23,6 @@ namespace contexthub {
|
||||
namespace V1_1 {
|
||||
namespace implementation {
|
||||
|
||||
using ::android::hardware::contexthub::V1_0::ContextHub;
|
||||
using ::android::hardware::contexthub::V1_0::HubAppInfo;
|
||||
using ::android::hardware::contexthub::V1_0::Result;
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr uint32_t kMockHubId = 0;
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
Return<void> Contexthub::getHubs(getHubs_cb _hidl_cb) {
|
||||
ContextHub hub = {};
|
||||
hub.name = "Mock Context Hub";
|
||||
hub.vendor = "AOSP";
|
||||
hub.toolchain = "n/a";
|
||||
hub.platformVersion = 1;
|
||||
hub.toolchainVersion = 1;
|
||||
hub.hubId = kMockHubId;
|
||||
hub.peakMips = 1;
|
||||
hub.peakPowerDrawMw = 1;
|
||||
hub.maxSupportedMsgLen = 4096;
|
||||
hub.chrePlatformId = UINT64_C(0x476f6f6754000000);
|
||||
hub.chreApiMajorVersion = 1;
|
||||
hub.chreApiMinorVersion = 4;
|
||||
|
||||
// Report a single mock hub
|
||||
std::vector<ContextHub> hubs;
|
||||
hubs.push_back(hub);
|
||||
|
||||
_hidl_cb(hubs);
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<Result> Contexthub::registerCallback(uint32_t hubId, const sp<IContexthubCallback>& cb) {
|
||||
if (hubId == kMockHubId) {
|
||||
mCallback = cb;
|
||||
return Result::OK;
|
||||
}
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
// We don't expose any nanoapps, therefore all nanoapp-related API calls return with BAD_PARAMS
|
||||
Return<Result> Contexthub::sendMessageToHub(uint32_t /*hubId*/, const ContextHubMsg& /*msg*/) {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> Contexthub::loadNanoApp(uint32_t /*hubId*/, const NanoAppBinary& /*appBinary*/,
|
||||
uint32_t /*transactionId*/) {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> Contexthub::unloadNanoApp(uint32_t /*hubId*/, uint64_t /*appId*/,
|
||||
uint32_t /*transactionId*/) {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> Contexthub::enableNanoApp(uint32_t /*hubId*/, uint64_t /*appId*/,
|
||||
uint32_t /*transactionId*/) {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> Contexthub::disableNanoApp(uint32_t /*hubId*/, uint64_t /*appId*/,
|
||||
uint32_t /*transactionId*/) {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> Contexthub::queryApps(uint32_t hubId) {
|
||||
if (hubId == kMockHubId && mCallback != nullptr) {
|
||||
std::vector<HubAppInfo> nanoapps;
|
||||
mCallback->handleAppsInfo(nanoapps);
|
||||
return Result::OK;
|
||||
}
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<void> Contexthub::onSettingChanged(Setting /*setting*/, SettingValue /*newValue*/) {
|
||||
return Void();
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ContextHub.h"
|
||||
|
||||
#include <android/hardware/contexthub/1.1/IContexthub.h>
|
||||
|
||||
namespace android {
|
||||
@@ -23,30 +25,11 @@ namespace contexthub {
|
||||
namespace V1_1 {
|
||||
namespace implementation {
|
||||
|
||||
class Contexthub : public V1_1::IContexthub {
|
||||
using ContextHubMsg = ::android::hardware::contexthub::V1_0::ContextHubMsg;
|
||||
using IContexthubCallback = ::android::hardware::contexthub::V1_0::IContexthubCallback;
|
||||
using NanoAppBinary = ::android::hardware::contexthub::V1_0::NanoAppBinary;
|
||||
using Result = ::android::hardware::contexthub::V1_0::Result;
|
||||
|
||||
class Contexthub
|
||||
: public ::android::hardware::contexthub::V1_X::implementation::ContextHub<IContexthub> {
|
||||
public:
|
||||
// Methods from V1_0::IContexthub
|
||||
Return<void> getHubs(getHubs_cb _hidl_cb) override;
|
||||
Return<Result> registerCallback(uint32_t hubId,
|
||||
const ::android::sp<IContexthubCallback>& cb) override;
|
||||
Return<Result> sendMessageToHub(uint32_t hubId, const ContextHubMsg& msg) override;
|
||||
Return<Result> loadNanoApp(uint32_t hubId, const NanoAppBinary& appBinary,
|
||||
uint32_t transactionId) override;
|
||||
Return<Result> unloadNanoApp(uint32_t hubId, uint64_t appId, uint32_t transactionId) override;
|
||||
Return<Result> enableNanoApp(uint32_t hubId, uint64_t appId, uint32_t transactionId) override;
|
||||
Return<Result> disableNanoApp(uint32_t hubId, uint64_t appId, uint32_t transactionId) override;
|
||||
Return<Result> queryApps(uint32_t hubId) override;
|
||||
|
||||
// Methods from V1_1::IContexthub
|
||||
Return<void> onSettingChanged(Setting setting, SettingValue newValue) override;
|
||||
|
||||
private:
|
||||
sp<IContexthubCallback> mCallback;
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
|
||||
16
contexthub/1.2/Android.bp
Normal file
16
contexthub/1.2/Android.bp
Normal file
@@ -0,0 +1,16 @@
|
||||
// This file is autogenerated by hidl-gen -Landroidbp.
|
||||
|
||||
hidl_interface {
|
||||
name: "android.hardware.contexthub@1.2",
|
||||
root: "android.hardware",
|
||||
srcs: [
|
||||
"types.hal",
|
||||
"IContexthub.hal",
|
||||
],
|
||||
interfaces: [
|
||||
"android.hardware.contexthub@1.0",
|
||||
"android.hardware.contexthub@1.1",
|
||||
"android.hidl.base@1.0",
|
||||
],
|
||||
gen_java: true,
|
||||
}
|
||||
31
contexthub/1.2/IContexthub.hal
Normal file
31
contexthub/1.2/IContexthub.hal
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.contexthub@1.2;
|
||||
|
||||
import @1.1::IContexthub;
|
||||
import @1.1::SettingValue;
|
||||
|
||||
interface IContexthub extends @1.1::IContexthub {
|
||||
/**
|
||||
* Notification sent by the framework to indicate that the user
|
||||
* has changed a setting.
|
||||
*
|
||||
* @param setting User setting that has been modified.
|
||||
* @param newValue The update value of the user setting.
|
||||
*/
|
||||
onSettingChanged_1_2(Setting setting, @1.1::SettingValue newValue);
|
||||
};
|
||||
46
contexthub/1.2/default/Android.bp
Normal file
46
contexthub/1.2/default/Android.bp
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.
|
||||
*/
|
||||
|
||||
cc_binary {
|
||||
name: "android.hardware.contexthub@1.2-service.mock",
|
||||
defaults: ["hidl_defaults"],
|
||||
vendor: true,
|
||||
relative_install_path: "hw",
|
||||
init_rc: ["android.hardware.contexthub@1.2-service.rc"],
|
||||
srcs: [
|
||||
"Contexthub.cpp",
|
||||
"service.cpp",
|
||||
],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Werror",
|
||||
],
|
||||
shared_libs: [
|
||||
"android.hardware.contexthub@1.0",
|
||||
"android.hardware.contexthub@1.1",
|
||||
"android.hardware.contexthub@1.2",
|
||||
"libbase",
|
||||
"libcutils",
|
||||
"libhardware",
|
||||
"libhidlbase",
|
||||
"liblog",
|
||||
"libutils",
|
||||
],
|
||||
header_libs: [
|
||||
"android.hardware.contexthub@1.X-common-impl",
|
||||
],
|
||||
vintf_fragments: ["android.hardware.contexthub@1.2.xml"],
|
||||
}
|
||||
38
contexthub/1.2/default/Contexthub.cpp
Normal file
38
contexthub/1.2/default/Contexthub.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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 "Contexthub.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace contexthub {
|
||||
namespace V1_2 {
|
||||
namespace implementation {
|
||||
|
||||
Return<void> Contexthub::onSettingChanged(SettingV1_1 /*setting*/, SettingValue /*newValue*/) {
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<void> Contexthub::onSettingChanged_1_2(Setting /*setting*/, SettingValue /*newValue*/) {
|
||||
return Void();
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace contexthub
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
45
contexthub/1.2/default/Contexthub.h
Normal file
45
contexthub/1.2/default/Contexthub.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ContextHub.h"
|
||||
|
||||
#include <android/hardware/contexthub/1.2/IContexthub.h>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace contexthub {
|
||||
namespace V1_2 {
|
||||
namespace implementation {
|
||||
|
||||
class Contexthub
|
||||
: public ::android::hardware::contexthub::V1_X::implementation::ContextHub<IContexthub> {
|
||||
using SettingValue = ::android::hardware::contexthub::V1_1::SettingValue;
|
||||
using SettingV1_1 = ::android::hardware::contexthub::V1_1::Setting;
|
||||
|
||||
public:
|
||||
// Methods from V1_1::IContexthub
|
||||
Return<void> onSettingChanged(SettingV1_1 setting, SettingValue newValue) override;
|
||||
|
||||
// Methods from V1_2::IContexthub
|
||||
Return<void> onSettingChanged_1_2(Setting setting, SettingValue newValue) override;
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace contexthub
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
3
contexthub/1.2/default/OWNERS
Normal file
3
contexthub/1.2/default/OWNERS
Normal file
@@ -0,0 +1,3 @@
|
||||
arthuri@google.com
|
||||
bduddie@google.com
|
||||
stange@google.com
|
||||
@@ -0,0 +1,7 @@
|
||||
service vendor.contexthub-hal-1.2-mock /vendor/bin/hw/android.hardware.contexthub@1.2-service.mock
|
||||
interface android.hardware.contexthub@1.0::IContexthub default
|
||||
interface android.hardware.contexthub@1.1::IContexthub default
|
||||
interface android.hardware.contexthub@1.2::IContexthub default
|
||||
class hal
|
||||
user context_hub
|
||||
group context_hub
|
||||
11
contexthub/1.2/default/android.hardware.contexthub@1.2.xml
Normal file
11
contexthub/1.2/default/android.hardware.contexthub@1.2.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.contexthub</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.2</version>
|
||||
<interface>
|
||||
<name>IContexthub</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
</manifest>
|
||||
42
contexthub/1.2/default/service.cpp
Normal file
42
contexthub/1.2/default/service.cpp
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.
|
||||
*/
|
||||
|
||||
#define LOG_TAG "android.hardware.contexthub@1.2-service"
|
||||
|
||||
#include <android/hardware/contexthub/1.2/IContexthub.h>
|
||||
#include <hidl/HidlTransportSupport.h>
|
||||
#include <log/log.h>
|
||||
#include <utils/StrongPointer.h>
|
||||
#include "Contexthub.h"
|
||||
|
||||
using ::android::hardware::configureRpcThreadpool;
|
||||
using ::android::hardware::joinRpcThreadpool;
|
||||
using ::android::hardware::contexthub::V1_2::IContexthub;
|
||||
using ::android::hardware::contexthub::V1_2::implementation::Contexthub;
|
||||
|
||||
int main() {
|
||||
configureRpcThreadpool(1, true /* callerWillJoin */);
|
||||
|
||||
::android::sp<IContexthub> contexthub = new Contexthub();
|
||||
if (contexthub->registerAsService() != ::android::OK) {
|
||||
ALOGE("Failed to register Contexthub HAL instance");
|
||||
return 1;
|
||||
}
|
||||
|
||||
joinRpcThreadpool();
|
||||
ALOGE("Service exited");
|
||||
return 1;
|
||||
}
|
||||
34
contexthub/1.2/types.hal
Normal file
34
contexthub/1.2/types.hal
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.contexthub@1.2;
|
||||
|
||||
import @1.1::Setting;
|
||||
|
||||
/**
|
||||
* Used to indicate the type of user setting that has changed.
|
||||
*/
|
||||
enum Setting : @1.1::Setting {
|
||||
/**
|
||||
* Indicates that the WiFi capabilities can be used in CHRE. This setting
|
||||
* follows the overall availability of WiFi-related functionality within
|
||||
* the Android framework, for example if WiFi is disabled for connectivity
|
||||
* purposes but is enabled for location purposes (scanning), then
|
||||
* WIFI_AVAILABLE is enabled.
|
||||
*/
|
||||
WIFI_AVAILABLE,
|
||||
AIRPLANE_MODE,
|
||||
};
|
||||
31
contexthub/1.2/vts/functional/Android.bp
Normal file
31
contexthub/1.2/vts/functional/Android.bp
Normal file
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// Copyright (C) 2020 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.
|
||||
//
|
||||
|
||||
cc_test {
|
||||
name: "VtsHalContexthubV1_2TargetTest",
|
||||
defaults: ["VtsHalTargetTestDefaults"],
|
||||
srcs: ["VtsHalContexthubV1_2TargetTest.cpp"],
|
||||
static_libs: [
|
||||
"android.hardware.contexthub@1.0",
|
||||
"android.hardware.contexthub@1.1",
|
||||
"android.hardware.contexthub@1.2",
|
||||
"VtsHalContexthubUtils",
|
||||
],
|
||||
test_suites: [
|
||||
"general-tests",
|
||||
"vts",
|
||||
],
|
||||
}
|
||||
8
contexthub/1.2/vts/functional/OWNERS
Normal file
8
contexthub/1.2/vts/functional/OWNERS
Normal file
@@ -0,0 +1,8 @@
|
||||
#Context Hub team
|
||||
arthuri@google.com
|
||||
bduddie@google.com
|
||||
stange@google.com
|
||||
|
||||
#VTS team
|
||||
dshi@google.com
|
||||
trong@google.com
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.
|
||||
*/
|
||||
|
||||
#define LOG_TAG "contexthub_hidl_hal_test"
|
||||
|
||||
#include "ContexthubCallbackBase.h"
|
||||
#include "ContexthubHidlTestBase.h"
|
||||
#include "VtsHalContexthubUtils.h"
|
||||
|
||||
#include <android-base/logging.h>
|
||||
#include <android/hardware/contexthub/1.0/IContexthub.h>
|
||||
#include <android/hardware/contexthub/1.1/IContexthub.h>
|
||||
#include <android/hardware/contexthub/1.2/IContexthub.h>
|
||||
#include <android/log.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <hidl/GtestPrinter.h>
|
||||
#include <hidl/ServiceManagement.h>
|
||||
#include <log/log.h>
|
||||
|
||||
#include <cinttypes>
|
||||
|
||||
using ::android::hardware::contexthub::V1_1::SettingValue;
|
||||
using ::android::hardware::contexthub::V1_2::IContexthub;
|
||||
using ::android::hardware::contexthub::V1_2::Setting;
|
||||
using ::android::hardware::contexthub::vts_utils::ContexthubCallbackBase;
|
||||
using ::android::hardware::contexthub::vts_utils::ContexthubHidlTestBase;
|
||||
using ::android::hardware::contexthub::vts_utils::getHalAndHubIdList;
|
||||
|
||||
namespace {
|
||||
|
||||
const std::vector<std::tuple<std::string, std::string>> kTestParameters =
|
||||
getHalAndHubIdList<IContexthub>();
|
||||
|
||||
class ContexthubHidlTest : public ContexthubHidlTestBase<IContexthub> {};
|
||||
|
||||
// In VTS, we only test that sending the values doesn't cause things to blow up - other test
|
||||
// suites verify the expected E2E behavior in CHRE
|
||||
TEST_P(ContexthubHidlTest, TestOnWifiSettingChanged) {
|
||||
ASSERT_OK(registerCallback(new ContexthubCallbackBase()));
|
||||
hubApi->onSettingChanged_1_2(Setting::WIFI_AVAILABLE, SettingValue::DISABLED);
|
||||
hubApi->onSettingChanged_1_2(Setting::WIFI_AVAILABLE, SettingValue::ENABLED);
|
||||
ASSERT_OK(registerCallback(nullptr));
|
||||
}
|
||||
|
||||
TEST_P(ContexthubHidlTest, TestOnAirplaneModeSettingChanged) {
|
||||
ASSERT_OK(registerCallback(new ContexthubCallbackBase()));
|
||||
hubApi->onSettingChanged_1_2(Setting::AIRPLANE_MODE, SettingValue::DISABLED);
|
||||
hubApi->onSettingChanged_1_2(Setting::AIRPLANE_MODE, SettingValue::ENABLED);
|
||||
ASSERT_OK(registerCallback(nullptr));
|
||||
}
|
||||
|
||||
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(ContexthubHidlTest);
|
||||
INSTANTIATE_TEST_SUITE_P(HubIdSpecificTests, ContexthubHidlTest, testing::ValuesIn(kTestParameters),
|
||||
android::hardware::PrintInstanceTupleNameToString<>);
|
||||
|
||||
} // anonymous namespace
|
||||
28
contexthub/common/default/1.X/Android.bp
Normal file
28
contexthub/common/default/1.X/Android.bp
Normal file
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// Copyright (C) 2020 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.
|
||||
|
||||
cc_library_headers {
|
||||
name: "android.hardware.contexthub@1.X-common-impl",
|
||||
vendor_available: true,
|
||||
defaults: ["hidl_defaults"],
|
||||
export_include_dirs: ["."],
|
||||
shared_libs: [
|
||||
"android.hardware.contexthub@1.0",
|
||||
"libbinder",
|
||||
"libcutils",
|
||||
"libhidlbase",
|
||||
"libutils",
|
||||
],
|
||||
}
|
||||
117
contexthub/common/default/1.X/ContextHub.h
Normal file
117
contexthub/common/default/1.X/ContextHub.h
Normal file
@@ -0,0 +1,117 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.
|
||||
*/
|
||||
|
||||
#ifndef ANDROID_HARDWARE_CONTEXTHUB_V1_X_CONTEXTHUB_H
|
||||
#define ANDROID_HARDWARE_CONTEXTHUB_V1_X_CONTEXTHUB_H
|
||||
|
||||
#include <android/hardware/contexthub/1.0/IContexthub.h>
|
||||
#include <android/hardware/contexthub/1.0/types.h>
|
||||
#include <hidl/Status.h>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace contexthub {
|
||||
namespace V1_X {
|
||||
namespace implementation {
|
||||
|
||||
template <class IContextHubInterface>
|
||||
struct ContextHub : public IContextHubInterface {
|
||||
using ContextHubMsg = ::android::hardware::contexthub::V1_0::ContextHubMsg;
|
||||
using HubAppInfo = ::android::hardware::contexthub::V1_0::HubAppInfo;
|
||||
using IContexthubCallback = ::android::hardware::contexthub::V1_0::IContexthubCallback;
|
||||
using NanoAppBinary = ::android::hardware::contexthub::V1_0::NanoAppBinary;
|
||||
using Result = ::android::hardware::contexthub::V1_0::Result;
|
||||
using getHubs_cb = ::android::hardware::contexthub::V1_0::IContexthub::getHubs_cb;
|
||||
|
||||
public:
|
||||
Return<void> getHubs(getHubs_cb _hidl_cb) override {
|
||||
::android::hardware::contexthub::V1_0::ContextHub hub = {};
|
||||
hub.name = "Mock Context Hub";
|
||||
hub.vendor = "AOSP";
|
||||
hub.toolchain = "n/a";
|
||||
hub.platformVersion = 1;
|
||||
hub.toolchainVersion = 1;
|
||||
hub.hubId = kMockHubId;
|
||||
hub.peakMips = 1;
|
||||
hub.peakPowerDrawMw = 1;
|
||||
hub.maxSupportedMsgLen = 4096;
|
||||
hub.chrePlatformId = UINT64_C(0x476f6f6754000000);
|
||||
hub.chreApiMajorVersion = 1;
|
||||
hub.chreApiMinorVersion = 4;
|
||||
|
||||
// Report a single mock hub
|
||||
std::vector<::android::hardware::contexthub::V1_0::ContextHub> hubs;
|
||||
hubs.push_back(hub);
|
||||
|
||||
_hidl_cb(hubs);
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<Result> registerCallback(uint32_t hubId, const sp<IContexthubCallback>& cb) override {
|
||||
if (hubId == kMockHubId) {
|
||||
mCallback = cb;
|
||||
return Result::OK;
|
||||
}
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
// We don't expose any nanoapps, therefore all nanoapp-related API calls return with BAD_PARAMS
|
||||
Return<Result> sendMessageToHub(uint32_t /*hubId*/, const ContextHubMsg& /*msg*/) override {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> loadNanoApp(uint32_t /*hubId*/, const NanoAppBinary& /*appBinary*/,
|
||||
uint32_t /*transactionId*/) override {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> unloadNanoApp(uint32_t /*hubId*/, uint64_t /*appId*/,
|
||||
uint32_t /*transactionId*/) override {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> enableNanoApp(uint32_t /*hubId*/, uint64_t /*appId*/,
|
||||
uint32_t /*transactionId*/) override {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> disableNanoApp(uint32_t /*hubId*/, uint64_t /*appId*/,
|
||||
uint32_t /*transactionId*/) override {
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
Return<Result> queryApps(uint32_t hubId) override {
|
||||
if (hubId == kMockHubId && mCallback != nullptr) {
|
||||
std::vector<HubAppInfo> nanoapps;
|
||||
mCallback->handleAppsInfo(nanoapps);
|
||||
return Result::OK;
|
||||
}
|
||||
return Result::BAD_PARAMS;
|
||||
}
|
||||
|
||||
private:
|
||||
static constexpr uint32_t kMockHubId = 0;
|
||||
|
||||
sp<IContexthubCallback> mCallback;
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_X
|
||||
} // namespace contexthub
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
|
||||
#endif // ANDROID_HARDWARE_CONTEXTHUB_V1_X_CONTEXTHUB_H
|
||||
@@ -778,6 +778,8 @@ cd84ab19c590e0e73dd2307b591a3093ee18147ef95e6d5418644463a6620076 android.hardwar
|
||||
# HALs released in Android S
|
||||
# NOTE: waiting to freeze HALs until later in the release
|
||||
# NOTE: new HALs are recommended to be in AIDL
|
||||
6e64b33f1b720b66b0deb5e08dee37a99deaa94e2e9ebf7806703cabab56e21d android.hardware.contexthub@1.2::IContexthub
|
||||
3fb83f4539cab2c7bf9fdbecf7265d1c1dd6e8de9694046fe512b493c127ccea android.hardware.contexthub@1.2::types
|
||||
57d183b10b13ec0a8e542c0b3d61991ae541c60e85dbbc5499bb21dfd068cbb8 android.hardware.wifi.supplicant@1.4::types
|
||||
17818b6b1952a75e4364ae82c534b9d2f5c0a9765a56256b16faa5a5cf45d3a8 android.hardware.wifi.supplicant@1.4::ISupplicant
|
||||
8342b5f6ec8f48ad2b741128aede010995d0b5709257b7ec09bb469b4f61ef1a android.hardware.wifi.supplicant@1.4::ISupplicantStaIface
|
||||
|
||||
Reference in New Issue
Block a user