From c97a9c6ed8adca15899532437a1ab74d0132de9e Mon Sep 17 00:00:00 2001 From: Fabian Ebner Date: Mon, 11 Jan 2021 13:34:09 +0100 Subject: [PATCH] tests: mock storage locking for migration tests by doing it in a local directory instead of /var/lock/pve-manager, which is used by the installed/non-test PVE code. This also covers the shared case, which will become relevant after fixing #3229 (currently migration doesn't touch disks on shared storages). Reported-by: Stefan Reiter Signed-off-by: Fabian Ebner --- test/MigrationTest/Shared.pm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/MigrationTest/Shared.pm b/test/MigrationTest/Shared.pm index c09562c3..d7aeb36a 100644 --- a/test/MigrationTest/Shared.pm +++ b/test/MigrationTest/Shared.pm @@ -145,6 +145,18 @@ $storage_module->mock( }, ); +our $storage_plugin_module = Test::MockModule->new("PVE::Storage::Plugin"); +$storage_plugin_module->mock( + cluster_lock_storage => sub { + my ($class, $storeid, $shared, $timeout, $func, @param) = @_; + + mkdir "${RUN_DIR_PATH}/lock"; + + my $path = "${RUN_DIR_PATH}/lock/pve-storage-${storeid}"; + return PVE::Tools::lock_file($path, $timeout, $func, @param); + }, +); + our $systemd_module = Test::MockModule->new("PVE::Systemd"); $systemd_module->mock( wait_for_unit_removed => sub {