xref: /aosp_15_r20/system/libvintf/test/RuntimeInfo-fake.cpp (revision 70a7ec852fcefd15a4fb57f8f183a8b1c3aacb08)
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