/* * 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&& configs) { kernel_info_.mVersion = std::move(v); kernel_info_.mConfigs = std::move(configs); } void MockRuntimeInfo::setNextFetchKernelInfo(const KernelVersion& v, const std::map& configs) { kernel_info_.mVersion = v; kernel_info_.mConfigs = configs; } void MockRuntimeInfo::setNextFetchKernelLevel(Level level) { kernel_info_.mLevel = level; } } // namespace details } // namespace vintf } // namespace android