blob: 1af6cfed3c8e2540f84e070bcc06e2c6178f0fc7 [file] [log] [blame]
Yifan Hong537802d2018-08-15 13:15:42 -07001//
2// Copyright (C) 2018 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17#include <stdint.h>
18
19#include <memory>
20#include <string>
21
22#include <gmock/gmock.h>
23
Yifan Hong012508e2019-07-22 18:30:40 -070024#include "update_engine/common/boot_control_interface.h"
25#include "update_engine/dynamic_partition_control_android.h"
Yifan Hong537802d2018-08-15 13:15:42 -070026#include "update_engine/dynamic_partition_control_interface.h"
27
28namespace chromeos_update_engine {
29
Yifan Hongc049f932019-07-23 15:06:05 -070030class MockDynamicPartitionControl : public DynamicPartitionControlInterface {
31 public:
32 MOCK_METHOD5(MapPartitionOnDeviceMapper,
33 bool(const std::string&,
34 const std::string&,
35 uint32_t,
36 bool,
37 std::string*));
38 MOCK_METHOD0(Cleanup, void());
39 MOCK_METHOD1(DeviceExists, bool(const std::string&));
40 MOCK_METHOD1(GetState, ::android::dm::DmDeviceState(const std::string&));
41 MOCK_METHOD2(GetDmDevicePathByName, bool(const std::string&, std::string*));
42 MOCK_METHOD2(LoadMetadataBuilder,
43 std::unique_ptr<::android::fs_mgr::MetadataBuilder>(
44 const std::string&, uint32_t));
45 MOCK_METHOD1(GetDeviceDir, bool(std::string*));
46 MOCK_METHOD0(GetDynamicPartitionsFeatureFlag, FeatureFlag());
47 MOCK_METHOD3(PreparePartitionsForUpdate,
Yifan Hong13d41cb2019-09-16 13:18:22 -070048 bool(uint32_t, uint32_t, const DeltaArchiveManifest&));
Yifan Hongc049f932019-07-23 15:06:05 -070049 MOCK_METHOD1(GetSuperPartitionName, std::string(uint32_t));
Yifan Hong413d5722019-07-23 14:21:09 -070050 MOCK_METHOD0(GetVirtualAbFeatureFlag, FeatureFlag());
Yifan Honga33bca42019-09-03 20:29:45 -070051 MOCK_METHOD0(FinishUpdate, bool());
Yifan Hongc049f932019-07-23 15:06:05 -070052};
53
Yifan Hong012508e2019-07-22 18:30:40 -070054class MockDynamicPartitionControlAndroid
55 : public DynamicPartitionControlAndroid {
Yifan Hong537802d2018-08-15 13:15:42 -070056 public:
Yifan Hongaf65ef12018-10-29 11:09:06 -070057 MOCK_METHOD5(MapPartitionOnDeviceMapper,
58 bool(const std::string&,
59 const std::string&,
60 uint32_t,
61 bool,
62 std::string*));
David Anderson4c891c92019-06-21 17:45:23 -070063 MOCK_METHOD1(UnmapPartitionOnDeviceMapper, bool(const std::string&));
Yifan Hong537802d2018-08-15 13:15:42 -070064 MOCK_METHOD0(Cleanup, void());
65 MOCK_METHOD1(DeviceExists, bool(const std::string&));
66 MOCK_METHOD1(GetState, ::android::dm::DmDeviceState(const std::string&));
67 MOCK_METHOD2(GetDmDevicePathByName, bool(const std::string&, std::string*));
Yifan Hong6e706b12018-11-09 16:50:51 -080068 MOCK_METHOD3(LoadMetadataBuilder,
Yifan Hong537802d2018-08-15 13:15:42 -070069 std::unique_ptr<::android::fs_mgr::MetadataBuilder>(
Yifan Hong6e706b12018-11-09 16:50:51 -080070 const std::string&, uint32_t, uint32_t));
Yifan Hong537802d2018-08-15 13:15:42 -070071 MOCK_METHOD3(StoreMetadata,
72 bool(const std::string&,
73 android::fs_mgr::MetadataBuilder*,
74 uint32_t));
75 MOCK_METHOD1(GetDeviceDir, bool(std::string*));
Yifan Hong186bb682019-07-23 14:04:39 -070076 MOCK_METHOD0(GetDynamicPartitionsFeatureFlag, FeatureFlag());
Yifan Hong700d7c12019-07-23 20:49:16 -070077 MOCK_METHOD1(GetSuperPartitionName, std::string(uint32_t));
Yifan Hong413d5722019-07-23 14:21:09 -070078 MOCK_METHOD0(GetVirtualAbFeatureFlag, FeatureFlag());
Yifan Honga33bca42019-09-03 20:29:45 -070079 MOCK_METHOD0(FinishUpdate, bool());
Yifan Hong537802d2018-08-15 13:15:42 -070080};
81
82} // namespace chromeos_update_engine