From eebcdb11194d9fadeefafaa11b16d02fc6ea3ca7 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Thu, 7 Mar 2019 10:49:04 +0100 Subject: [PATCH] fix tests when one has iscsi devices the test would read the real device and if one is an iscsi device it would fail, move the test code to a sub and mock it in the tests Signed-off-by: Dominik Csapak --- PVE/Diskmanage.pm | 12 +++++++++++- test/disklist_test.pm | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm index 66b264a..612bc3b 100644 --- a/PVE/Diskmanage.pm +++ b/PVE/Diskmanage.pm @@ -371,6 +371,16 @@ sub dir_is_empty { return 1; } +sub is_iscsi { + my ($sysdir) = @_; + + if (-l $sysdir && readlink($sysdir) =~ m|host[^/]*/session[^/]*|) { + return 1; + } + + return 0; +} + sub get_disks { my ($disk, $nosmart) = @_; my $disklist = {}; @@ -421,7 +431,7 @@ sub get_disks { my $sysdir = "/sys/block/$dev"; # we do not want iscsi devices - return if -l $sysdir && readlink($sysdir) =~ m|host[^/]*/session[^/]*|; + return if is_iscsi($sysdir); my $sysdata = get_sysdir_info($sysdir); return if !defined($sysdata); diff --git a/test/disklist_test.pm b/test/disklist_test.pm index b2bde49..902563c 100644 --- a/test/disklist_test.pm +++ b/test/disklist_test.pm @@ -80,6 +80,10 @@ sub mocked_get_sysdir_info { return &$originalsub($param); } +sub mocked_is_iscsi { + return 0; +} + sub mocked_dir_glob_foreach { my ($dir, $regex, $sub) = @_; @@ -186,6 +190,8 @@ $diskmanage_module->mock('dir_glob_foreach' => \&mocked_dir_glob_foreach); print("\tMocked dir_glob_foreach\n"); $diskmanage_module->mock('get_sysdir_info' => \&mocked_get_sysdir_info); print("\tMocked get_sysdir_info\n"); +$diskmanage_module->mock('is_iscsi' => \&mocked_is_iscsi); +print("\tMocked is_iscsi\n"); $diskmanage_module->mock('assert_blockdev' => sub { return 1; }); print("\tMocked assert_blockdev\n"); $diskmanage_module->mock('dir_is_empty' => sub {