1 // Copyright 2018 The Android Open Source Project 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #include "host-common/vm_operations.h" 16 17 #include <gmock/gmock.h> 18 19 namespace android { 20 21 #define VM_OPERATION_MOCK(MOCK_MACRO, name) \ 22 MOCK_MACRO( \ 23 name, \ 24 std::remove_pointer<decltype(QAndroidVmOperations::name)>::type) 25 26 class MockAndroidVmOperations { 27 public: 28 static MockAndroidVmOperations* mock; 29 30 // bool vmStop() 31 VM_OPERATION_MOCK(MOCK_METHOD0, vmStop); 32 33 // bool vmStart() 34 VM_OPERATION_MOCK(MOCK_METHOD0, vmStart); 35 36 // bool snapshotSave(const char* name, void* opaque, LineConsumerCallback 37 // errConsumer) 38 VM_OPERATION_MOCK(MOCK_METHOD3, snapshotSave); 39 40 // bool snapshotLoad(const char* name, void* opaque, LineConsumerCallback 41 // errConsumer) 42 VM_OPERATION_MOCK(MOCK_METHOD3, snapshotLoad); 43 44 // bool snapshotRemap(bool shared, void* opaque, LineConsumerCallback 45 // errConsumer) 46 VM_OPERATION_MOCK(MOCK_METHOD3, snapshotRemap); 47 48 // bool (*snapshotExport)(const char* snapshot, 49 // const char* dest, 50 // void* opaque, 51 // LineConsumerCallback errConsumer); 52 VM_OPERATION_MOCK(MOCK_METHOD4, snapshotExport); 53 54 // void setSnapshotCallbacks(void* opaque, 55 // const SnapshotCallbacks* callbacks); 56 VM_OPERATION_MOCK(MOCK_METHOD2, setSnapshotCallbacks); 57 }; 58 59 } // namespace android 60