You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.8 KiB

/*
* Copyright (C) 2017 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 "utils-fake.h"
namespace android {
namespace vintf {
namespace details {
MockRuntimeInfo::MockRuntimeInfo() {
kernel_info_.mVersion = {3, 18, 31};
kernel_info_.mConfigs = {{"CONFIG_64BIT", "y"},
{"CONFIG_ANDROID_BINDER_DEVICES", "\"binder,hwbinder\""},
{"CONFIG_ARCH_MMAP_RND_BITS", "24"},
{"CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES", "\"\""},
{"CONFIG_ILLEGAL_POINTER_VALUE", "0xdead000000000000"}};
ON_CALL(*this, fetchAllInformation(_)).WillByDefault(Invoke(this, &MockRuntimeInfo::doFetch));
}
status_t MockRuntimeInfo::doFetch(RuntimeInfo::FetchFlags flags) {
if (failNextFetch_) {
failNextFetch_ = false;
return android::UNKNOWN_ERROR;
}
if (flags & RuntimeInfo::FetchFlag::CPU_VERSION) {
mOsName = "Linux";
mNodeName = "localhost";
mOsRelease = "3.18.31-g936f9a479d0f";
mOsVersion = "#4 SMP PREEMPT Wed Feb 1 18:10:52 PST 2017";
mHardwareId = "aarch64";
mKernel.mVersion = kernel_info_.mVersion;
}
if (flags & RuntimeInfo::FetchFlag::KERNEL_FCM && kernel_info_.mLevel != Level::UNSPECIFIED) {
mKernel.mLevel = kernel_info_.mLevel;
}
if (flags & RuntimeInfo::FetchFlag::POLICYVERS) {
mKernelSepolicyVersion = 30;
}
if (flags & RuntimeInfo::FetchFlag::CONFIG_GZ) {
mKernel.mConfigs = kernel_info_.mConfigs;
}
// fetchAllInformtion does not fetch kernel FCM version
return OK;
}
void MockRuntimeInfo::setNextFetchKernelInfo(KernelVersion&& v,
std::map<std::string, std::string>&& configs) {
kernel_info_.mVersion = std::move(v);
kernel_info_.mConfigs = std::move(configs);
}
void MockRuntimeInfo::setNextFetchKernelInfo(const KernelVersion& v,
const std::map<std::string, std::string>& configs) {
kernel_info_.mVersion = v;
kernel_info_.mConfigs = configs;
}
void MockRuntimeInfo::setNextFetchKernelLevel(Level level) {
kernel_info_.mLevel = level;
}
} // namespace details
} // namespace vintf
} // namespace android