/* * 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