| /* |
| * Copyright (C) 2018 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 "test_partition_opener.h" |
| |
| #include <errno.h> |
| |
| namespace android { |
| namespace fs_mgr { |
| |
| using android::base::unique_fd; |
| |
| TestPartitionOpener::TestPartitionOpener( |
| const std::map<std::string, int>& partition_map, |
| const std::map<std::string, BlockDeviceInfo>& partition_info) |
| : partition_map_(partition_map), partition_info_(partition_info) {} |
| |
| unique_fd TestPartitionOpener::Open(const std::string& partition_name, int flags) const { |
| auto iter = partition_map_.find(partition_name); |
| if (iter == partition_map_.end()) { |
| errno = ENOENT; |
| return {}; |
| } |
| return unique_fd{dup(iter->second)}; |
| } |
| |
| bool TestPartitionOpener::GetInfo(const std::string& partition_name, BlockDeviceInfo* info) const { |
| auto iter = partition_info_.find(partition_name); |
| if (iter == partition_info_.end()) { |
| errno = ENOENT; |
| return false; |
| } |
| *info = iter->second; |
| return true; |
| } |
| |
| } // namespace fs_mgr |
| } // namespace android |