vzdump: test: adapt and add more tests that are possible now

Now, with the logic for `all` and `exclude` in the same single method,
additional tests for these cases are possible.

Adapt to hash return value of `get_included_guests`.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
This commit is contained in:
Aaron Lauterer 2020-06-17 14:13:39 +02:00 committed by Thomas Lamprecht
parent df5875b41e
commit 5d807cf56d

View File

@ -9,7 +9,7 @@ use warnings;
use lib '..'; use lib '..';
use Test::More tests => 7; use Test::More tests => 9;
use Test::MockModule; use Test::MockModule;
use PVE::VZDump; use PVE::VZDump;
@ -87,84 +87,82 @@ my $addtest = sub {
}; };
}; };
# is handled in the PVE::VZDump->exec_backup() method for now $addtest->('Test all guests', {
# $addtest->('Test all guests', { expected => {
# expected_vmids => [ 100, 101, 112, 113, 200, 201, 212, 213 ], node1 => [ 100, 101, 112, 113 ],
# expected_skiplist => [ ], node2 => [ 200, 201, 212, 213 ],
# param => { },
# all => 1,
# }
# });
# is handled in the PVE::VZDump->exec_backup() method for now
# $addtest->('Test all guests with cluster node limit', {
# expected_vmids => [ 100, 101, 112, 113, 200, 201, 212, 213 ],
# expected_skiplist => [],
# param => {
# all => 1,
# node => 'node2',
# }
# });
# is handled in the PVE::VZDump->exec_backup() method for now
# $addtest->('Test all guests with local node limit', {
# expected_vmids => [ 100, 101, 112, 113 ],
# expected_skiplist => [ 200, 201, 212, 213 ],
# param => {
# all => 1,
# node => 'node1',
# }
# });
#
# TODO: all test variants with exclude
$addtest->('Test pool members', {
expected_vmids => [ 100, 101 ],
expected_skiplist => [ 200, 201 ],
param => { param => {
pool => 'testpool', all => 1,
} }
}); });
$addtest->('Test pool members with cluster node limit', { $addtest->('Test all guests with node limit', {
expected_vmids => [ 100, 101, 200, 201 ], expected => {
expected_skiplist => [], node2 => [ 200, 201, 212, 213 ],
},
param => { param => {
pool => 'testpool', all => 1,
node => 'node2', node => 'node2',
} }
}); });
$addtest->('Test pool members with local node limit', { $addtest->('Test exclude', {
expected_vmids => [ 100, 101 ], expected => {
expected_skiplist => [ 200, 201 ], node1 =>[ 101, 112, 113 ],
node2 => [ 201, 212, 213 ],
},
param => { param => {
pool => 'testpool', all => 1,
exclude => '100, 102, 200, 202',
}
});
$addtest->('Test exclude with node limit', {
expected => {
node1 =>[ 101, 112, 113 ],
},
param => {
all => 1,
exclude => '100, 102, 200, 202',
node => 'node1', node => 'node1',
} }
}); });
$addtest->('Test selected VMIDs', { $addtest->('Test pool members', {
expected_vmids => [ 100 ], expected => {
expected_skiplist => [ 201, 212 ], node1 =>[ 100, 101 ],
node2 => [ 200, 201 ],
},
param => { param => {
vmid => '100, 201, 212', pool => 'testpool',
} }
}); });
$addtest->('Test pool members with node limit', {
$addtest->('Test selected VMIDs with cluster node limit', { expected => {
expected_vmids => [ 100, 201, 212 ], node2 => [ 200, 201 ],
expected_skiplist => [], },
param => { param => {
vmid => '100, 201, 212', pool => 'testpool',
node => 'node2', node => 'node2',
} }
}); });
$addtest->('Test selected VMIDs with local node limit', { $addtest->('Test selected VMIDs', {
expected_vmids => [ 100 ], expected => {
expected_skiplist => [ 201, 212 ], node1 =>[ 100 ],
node2 => [ 201, 212 ],
},
param => {
vmid => '100, 201, 212',
}
});
$addtest->('Test selected VMIDs with node limit', {
expected => {
node1 =>[ 100 ],
},
param => { param => {
vmid => '100, 201, 212', vmid => '100, 201, 212',
node => 'node1', node => 'node1',
@ -172,8 +170,8 @@ $addtest->('Test selected VMIDs with local node limit', {
}); });
$addtest->('Test selected VMIDs on other nodes', { $addtest->('Test selected VMIDs on other nodes', {
expected_vmids => [], expected => {
expected_skiplist => [ 201, 212 ], },
param => { param => {
vmid => '201, 212', vmid => '201, 212',
node => 'node1', node => 'node1',
@ -185,16 +183,11 @@ for my $test (@{$tests}) {
my $testname = $test->{name}; my $testname = $test->{name};
my $testdata = $test->{test}; my $testdata = $test->{test};
note($testname); # note($testname);
my $expected = [ $testdata->{expected_vmids}, $testdata->{expected_skiplist} ];
my ($local, $cluster) = PVE::VZDump::get_included_guests($testdata->{param}); my $result = PVE::VZDump::get_included_guests($testdata->{param});
my $result = [ $local, $cluster ];
# print "Expected: " . Dumper($expected); is_deeply($result, $testdata->{expected}, $testname);
# print "Returned: " . Dumper($result);
is_deeply($result, $expected, $testname);
} }
exit(0); exit(0);