5
0
mirror of git://git.proxmox.com/git/pve-storage.git synced 2024-12-23 17:34:34 +03:00
pve-storage/test/filesystem_path_test.pm
Alwin Antreich 2eb7ba261d test: filesystem_path
Signed-off-by: Alwin Antreich <a.antreich@proxmox.com>
2020-04-30 18:37:19 +02:00

92 lines
1.8 KiB
Perl

package PVE::Storage::TestFilesystemPath;
use strict;
use warnings;
use lib qw(..);
use PVE::Storage;
use Test::More;
my $path = '/some/path';
# each array entry is a test that consists of the following keys:
# volname => image name that is passed to parse_volname
# snapname => to test the die condition
# expected => the array of return values; or the die message
my $tests = [
{
volname => '1234/vm-1234-disk-0.raw',
snapname => undef,
expected => [
"$path/images/1234/vm-1234-disk-0.raw",
'1234',
'images'
],
},
{
volname => '1234/vm-1234-disk-0.raw',
snapname => 'my_snap',
expected => "can't snapshot this image format\n"
},
{
volname => '1234/vm-1234-disk-0.qcow2',
snapname => undef,
expected => [
"$path/images/1234/vm-1234-disk-0.qcow2",
'1234',
'images'
],
},
{
volname => '1234/vm-1234-disk-0.qcow2',
snapname => 'my_snap',
expected => [
"$path/images/1234/vm-1234-disk-0.qcow2",
'1234',
'images'
],
},
{
volname => 'iso/my-awesome-proxmox.iso',
snapname => undef,
expected => [
"$path/template/iso/my-awesome-proxmox.iso",
undef,
'iso'
],
},
{
volname => "backup/vzdump-qemu-1234-2020_03_30-21_12_40.vma",
snapname => undef,
expected => [
"$path/dump/vzdump-qemu-1234-2020_03_30-21_12_40.vma",
1234,
'backup'
],
},
];
plan tests => scalar @$tests;
foreach my $tt (@$tests) {
my $volname = $tt->{volname};
my $snapname = $tt->{snapname};
my $expected = $tt->{expected};
my $scfg = { path => $path };
my $got;
eval {
$got = [ PVE::Storage::Plugin->filesystem_path($scfg, $volname, $snapname) ];
};
$got = $@ if $@;
is_deeply($got, $expected, "wantarray: filesystem_path for $volname")
|| diag(explain($got));
}
done_testing();
1;