Skip to content

Commit 9296d1d

Browse files
committed
[tests] BaseVM restores snapshots
1 parent b3621bb commit 9296d1d

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

tests/test_base_virtual_machine.cpp

+49
Original file line numberDiff line numberDiff line change
@@ -678,4 +678,53 @@ TEST_F(BaseVM, throwsOnRequestToRenameSnapshotWithRepeatedName)
678678
EXPECT_EQ(vm.get_snapshot(names[0]), snapshot_album[0]);
679679
EXPECT_EQ(vm.get_snapshot(names[1]), snapshot_album[1]);
680680
}
681+
682+
TEST_F(BaseVM, restoresSnapshots)
683+
{
684+
mock_named_snapshotting();
685+
686+
mp::VMMount mount{"src", {}, {}, mp::VMMount::MountType::Classic};
687+
std::unordered_map<std::string, mp::VMMount> mounts{};
688+
689+
QJsonObject metadata{};
690+
metadata["meta"] = "data";
691+
692+
const mp::VMSpecs original_specs{2,
693+
mp::MemorySize{"3.5G"},
694+
mp::MemorySize{"15G"},
695+
"12:12:12:12:12:12",
696+
{},
697+
"user",
698+
mp::VirtualMachine::State::off,
699+
{{"dst", mount}},
700+
false,
701+
metadata};
702+
703+
const auto* snapshot_name = "shoot";
704+
vm.take_snapshot(original_specs, snapshot_name, "");
705+
706+
ASSERT_EQ(snapshot_album.size(), 1);
707+
auto& snapshot = *snapshot_album[0];
708+
709+
mp::VMSpecs changed_specs = original_specs;
710+
changed_specs.num_cores = 3;
711+
changed_specs.mem_size = mp::MemorySize{"5G"};
712+
changed_specs.disk_space = mp::MemorySize{"35G"};
713+
changed_specs.state = mp::VirtualMachine::State::stopped;
714+
changed_specs.mounts.clear();
715+
changed_specs.metadata["data"] = "meta";
716+
changed_specs.metadata["meta"] = "toto";
717+
718+
EXPECT_CALL(snapshot, apply);
719+
EXPECT_CALL(snapshot, get_state).WillRepeatedly(Return(original_specs.state));
720+
EXPECT_CALL(snapshot, get_num_cores).WillRepeatedly(Return(original_specs.num_cores));
721+
EXPECT_CALL(snapshot, get_mem_size).WillRepeatedly(Return(original_specs.mem_size));
722+
EXPECT_CALL(snapshot, get_disk_space).WillRepeatedly(Return(original_specs.disk_space));
723+
EXPECT_CALL(snapshot, get_mounts).WillRepeatedly(ReturnRef(original_specs.mounts));
724+
EXPECT_CALL(snapshot, get_metadata).WillRepeatedly(ReturnRef(original_specs.metadata));
725+
726+
vm.restore_snapshot(snapshot_name, changed_specs);
727+
728+
EXPECT_EQ(original_specs, changed_specs);
729+
}
681730
} // namespace

0 commit comments

Comments
 (0)