5
0
mirror of git://git.proxmox.com/git/pve-storage.git synced 2025-02-09 09:57:38 +03:00
pve-storage/test/get_subdir_test.pm
Leo Nunner b539bb46a8 plugin: change name, separator and error message for dir overrides
Rename the "dirs" parameter to "content-dirs". Switch from a "vtype:/dir"
format to "vtype=/dir", and remove the misleading error message talking
about "absolute" paths. One might expect these to be absolute over the
whole system, while in reality they are relative to the mountpoint of
the storage.

Signed-off-by: Leo Nunner <l.nunner@proxmox.com>
2023-01-09 10:47:20 +01:00

52 lines
1.4 KiB
Perl

package PVE::Storage::TestGetSubdir;
use strict;
use warnings;
use lib qw(..);
use PVE::Storage::Plugin;
use Test::More;
my $scfg_with_path = { path => '/some/path' };
my $vtype_subdirs = PVE::Storage::Plugin::get_vtype_subdirs();
# each test is comprised of the following array keys:
# [0] => storage config; positive with path key
# [1] => storage type; see $vtype_subdirs
# [2] => expected return from get_subdir
my $tests = [
# failed matches
[ $scfg_with_path, 'none', "unknown vtype 'none'\n" ],
[ {}, 'iso', "storage definition has no path\n" ],
];
# creates additional positive tests
foreach my $type (keys %$vtype_subdirs) {
my $path = "$scfg_with_path->{path}/$vtype_subdirs->{$type}";
push @$tests, [ $scfg_with_path, $type, $path ];
}
# creates additional tests for overrides
foreach my $type (keys %$vtype_subdirs) {
my $override = "/${type}_override";
my $scfg_with_override = { path => '/some/path', 'content-dirs' => { $type => $override } };
push @$tests, [ $scfg_with_override, $type, "$scfg_with_override->{path}$scfg_with_override->{'content-dirs'}->{$type}" ];
}
plan tests => scalar @$tests;
foreach my $tt (@$tests) {
my ($scfg, $type, $expected) = @$tt;
my $got;
eval { $got = PVE::Storage::Plugin->get_subdir($scfg, $type) };
$got = $@ if $@;
is ($got, $expected, "get_subdir for $type") || diag(explain($got));
}
done_testing();
1;