pve-manager/test/vzdump_guest_included_test.pl
Fabian Ebner 83b2191464 remove outdated comment
Commit df5875b41e12d164cfe3c722e929f4c41fc94d34 moved the
all/exclude logic into the single method

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2020-10-22 16:29:26 +02:00

190 lines
3.0 KiB
Perl
Executable File

#!/usr/bin/perl
use strict;
use warnings;
use lib '..';
use Test::More tests => 9;
use Test::MockModule;
use PVE::VZDump;
use Data::Dumper;
my $vmlist = {
'ids' => {
100 => {
'type' => 'qemu',
'node' => 'node1',
},
101 => {
'type' => 'qemu',
'node' => 'node1',
},
112 => {
'type' => 'lxc',
'node' => 'node1',
},
113 => {
'type' => 'lxc',
'node' => 'node1',
},
200 => {
'type' => 'qemu',
'node' => 'node2',
},
201 => {
'type' => 'qemu',
'node' => 'node2',
},
212 => {
'type' => 'lxc',
'node' => 'node2',
},
213 => {
'type' => 'lxc',
'node' => 'node2',
},
}
};
my $pools = {
testpool => [100, 101, 200, 201],
};
my $pve_cluster_module = Test::MockModule->new('PVE::Cluster');
$pve_cluster_module->mock(
get_vmlist => sub {
return $vmlist;
}
);
my $pve_inotify = Test::MockModule->new('PVE::INotify');
$pve_inotify->mock(
nodename => sub {
return 'node1';
}
);
my $pve_api2tools = Test::MockModule->new('PVE::API2Tools');
$pve_api2tools->mock(
get_resource_pool_guest_members => sub {
return $pools->{testpool};
}
);
my $tests = [];
my $addtest = sub {
my ($name, $test) = @_;
push @$tests, {
name => $name,
test => $test,
};
};
$addtest->('Test all guests', {
expected => {
node1 => [ 100, 101, 112, 113 ],
node2 => [ 200, 201, 212, 213 ],
},
param => {
all => 1,
}
});
$addtest->('Test all guests with node limit', {
expected => {
node2 => [ 200, 201, 212, 213 ],
},
param => {
all => 1,
node => 'node2',
}
});
$addtest->('Test exclude', {
expected => {
node1 =>[ 101, 112, 113 ],
node2 => [ 201, 212, 213 ],
},
param => {
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',
}
});
$addtest->('Test pool members', {
expected => {
node1 =>[ 100, 101 ],
node2 => [ 200, 201 ],
},
param => {
pool => 'testpool',
}
});
$addtest->('Test pool members with node limit', {
expected => {
node2 => [ 200, 201 ],
},
param => {
pool => 'testpool',
node => 'node2',
}
});
$addtest->('Test selected VMIDs', {
expected => {
node1 =>[ 100 ],
node2 => [ 201, 212 ],
},
param => {
vmid => '100, 201, 212',
}
});
$addtest->('Test selected VMIDs with node limit', {
expected => {
node1 =>[ 100 ],
},
param => {
vmid => '100, 201, 212',
node => 'node1',
}
});
$addtest->('Test selected VMIDs on other nodes', {
expected => {
},
param => {
vmid => '201, 212',
node => 'node1',
}
});
for my $test (@{$tests}) {
my $testname = $test->{name};
my $testdata = $test->{test};
# note($testname);
my $result = PVE::VZDump::get_included_guests($testdata->{param});
is_deeply($result, $testdata->{expected}, $testname);
}
exit(0);