1*70a7ec85SAndroid Build Coastguard Worker /*
2*70a7ec85SAndroid Build Coastguard Worker * Copyright (C) 2017 The Android Open Source Project
3*70a7ec85SAndroid Build Coastguard Worker *
4*70a7ec85SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*70a7ec85SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*70a7ec85SAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*70a7ec85SAndroid Build Coastguard Worker *
8*70a7ec85SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0
9*70a7ec85SAndroid Build Coastguard Worker *
10*70a7ec85SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*70a7ec85SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*70a7ec85SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*70a7ec85SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*70a7ec85SAndroid Build Coastguard Worker * limitations under the License.
15*70a7ec85SAndroid Build Coastguard Worker */
16*70a7ec85SAndroid Build Coastguard Worker
17*70a7ec85SAndroid Build Coastguard Worker #include "utils-fake.h"
18*70a7ec85SAndroid Build Coastguard Worker
19*70a7ec85SAndroid Build Coastguard Worker namespace android {
20*70a7ec85SAndroid Build Coastguard Worker namespace vintf {
21*70a7ec85SAndroid Build Coastguard Worker namespace details {
22*70a7ec85SAndroid Build Coastguard Worker
MockRuntimeInfo()23*70a7ec85SAndroid Build Coastguard Worker MockRuntimeInfo::MockRuntimeInfo() {
24*70a7ec85SAndroid Build Coastguard Worker kernel_info_.mVersion = {3, 18, 31};
25*70a7ec85SAndroid Build Coastguard Worker kernel_info_.mConfigs = {{"CONFIG_64BIT", "y"},
26*70a7ec85SAndroid Build Coastguard Worker {"CONFIG_ANDROID_BINDER_DEVICES", "\"binder,hwbinder\""},
27*70a7ec85SAndroid Build Coastguard Worker {"CONFIG_ARCH_MMAP_RND_BITS", "24"},
28*70a7ec85SAndroid Build Coastguard Worker {"CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES", "\"\""},
29*70a7ec85SAndroid Build Coastguard Worker {"CONFIG_ILLEGAL_POINTER_VALUE", "0xdead000000000000"}};
30*70a7ec85SAndroid Build Coastguard Worker ON_CALL(*this, fetchAllInformation(_)).WillByDefault(Invoke(this, &MockRuntimeInfo::doFetch));
31*70a7ec85SAndroid Build Coastguard Worker }
32*70a7ec85SAndroid Build Coastguard Worker
doFetch(RuntimeInfo::FetchFlags flags)33*70a7ec85SAndroid Build Coastguard Worker status_t MockRuntimeInfo::doFetch(RuntimeInfo::FetchFlags flags) {
34*70a7ec85SAndroid Build Coastguard Worker if (failNextFetch_) {
35*70a7ec85SAndroid Build Coastguard Worker failNextFetch_ = false;
36*70a7ec85SAndroid Build Coastguard Worker return android::UNKNOWN_ERROR;
37*70a7ec85SAndroid Build Coastguard Worker }
38*70a7ec85SAndroid Build Coastguard Worker
39*70a7ec85SAndroid Build Coastguard Worker if (flags & RuntimeInfo::FetchFlag::CPU_VERSION) {
40*70a7ec85SAndroid Build Coastguard Worker mOsName = "Linux";
41*70a7ec85SAndroid Build Coastguard Worker mNodeName = "localhost";
42*70a7ec85SAndroid Build Coastguard Worker mOsRelease = "3.18.31-g936f9a479d0f";
43*70a7ec85SAndroid Build Coastguard Worker mOsVersion = "#4 SMP PREEMPT Wed Feb 1 18:10:52 PST 2017";
44*70a7ec85SAndroid Build Coastguard Worker mHardwareId = "aarch64";
45*70a7ec85SAndroid Build Coastguard Worker mKernel.mVersion = kernel_info_.mVersion;
46*70a7ec85SAndroid Build Coastguard Worker }
47*70a7ec85SAndroid Build Coastguard Worker
48*70a7ec85SAndroid Build Coastguard Worker if (flags & RuntimeInfo::FetchFlag::KERNEL_FCM && kernel_info_.mLevel != Level::UNSPECIFIED) {
49*70a7ec85SAndroid Build Coastguard Worker mKernel.mLevel = kernel_info_.mLevel;
50*70a7ec85SAndroid Build Coastguard Worker }
51*70a7ec85SAndroid Build Coastguard Worker
52*70a7ec85SAndroid Build Coastguard Worker if (flags & RuntimeInfo::FetchFlag::POLICYVERS) {
53*70a7ec85SAndroid Build Coastguard Worker mKernelSepolicyVersion = 30;
54*70a7ec85SAndroid Build Coastguard Worker }
55*70a7ec85SAndroid Build Coastguard Worker
56*70a7ec85SAndroid Build Coastguard Worker if (flags & RuntimeInfo::FetchFlag::CONFIG_GZ) {
57*70a7ec85SAndroid Build Coastguard Worker mKernel.mConfigs = kernel_info_.mConfigs;
58*70a7ec85SAndroid Build Coastguard Worker }
59*70a7ec85SAndroid Build Coastguard Worker // fetchAllInformtion does not fetch kernel FCM version
60*70a7ec85SAndroid Build Coastguard Worker return OK;
61*70a7ec85SAndroid Build Coastguard Worker }
setNextFetchKernelInfo(KernelVersion && v,std::map<std::string,std::string> && configs)62*70a7ec85SAndroid Build Coastguard Worker void MockRuntimeInfo::setNextFetchKernelInfo(KernelVersion&& v,
63*70a7ec85SAndroid Build Coastguard Worker std::map<std::string, std::string>&& configs) {
64*70a7ec85SAndroid Build Coastguard Worker kernel_info_.mVersion = std::move(v);
65*70a7ec85SAndroid Build Coastguard Worker kernel_info_.mConfigs = std::move(configs);
66*70a7ec85SAndroid Build Coastguard Worker }
setNextFetchKernelInfo(const KernelVersion & v,const std::map<std::string,std::string> & configs)67*70a7ec85SAndroid Build Coastguard Worker void MockRuntimeInfo::setNextFetchKernelInfo(const KernelVersion& v,
68*70a7ec85SAndroid Build Coastguard Worker const std::map<std::string, std::string>& configs) {
69*70a7ec85SAndroid Build Coastguard Worker kernel_info_.mVersion = v;
70*70a7ec85SAndroid Build Coastguard Worker kernel_info_.mConfigs = configs;
71*70a7ec85SAndroid Build Coastguard Worker }
setNextFetchKernelLevel(Level level)72*70a7ec85SAndroid Build Coastguard Worker void MockRuntimeInfo::setNextFetchKernelLevel(Level level) {
73*70a7ec85SAndroid Build Coastguard Worker kernel_info_.mLevel = level;
74*70a7ec85SAndroid Build Coastguard Worker }
75*70a7ec85SAndroid Build Coastguard Worker
76*70a7ec85SAndroid Build Coastguard Worker } // namespace details
77*70a7ec85SAndroid Build Coastguard Worker } // namespace vintf
78*70a7ec85SAndroid Build Coastguard Worker } // namespace android
79