]>
git.proxmox.com Git - pve-manager.git/blob - test/balloontest.pl
5 use Storable
qw(dclone);
28 abtest
($test_status1, 0);
29 abtest
($test_status1, MB
(90), 100 => MB
(1060), 101 => MB
(1030));
30 abtest
($test_status1, MB
(150), 100 => MB
(1100), 101 => MB
(1050));
31 abtest
($test_status1, MB
(270), 100 => MB
(1100), 101 => MB
(1090));
32 absim
($test_status1, MB
(180), 100 => MB
(1120), 101 => MB
(1060));
33 absim
($test_status1, MB
(270), 100 => MB
(1180), 101 => MB
(1090));
34 absim
($test_status1, MB
(600), 100 => MB
(1300), 101 => MB
(1300));
35 absim
($test_status1, MB
(900), 100 => MB
(1600), 101 => MB
(1300));
54 abtest
($test_status2, 0);
55 abtest
($test_status2, MB
(18), 101 => MB
(1018));
56 abtest
($test_status2, MB
(500), 101 => MB
(1100));
69 balloon
=> GB
(1)+MB
(7),
82 abtest
($test_status3, 0);
83 abtest
($test_status3, MB
(11), 101 => MB
(1018));
84 abtest
($test_status3, MB
(80), 101 => MB
(1087));
85 abtest
($test_status3, MB
(200), 101 => MB
(1107));
87 my $status = absim
($test_status3, MB
(593), 101 => MB
(1300), 102 => MB
(1300));
88 absim
($status, -MB
(200), 101 => MB
(1200), 102 => MB
(1200));
89 absim
($status, -MB
(400), 101 => MB
(1200), 102 => GB
(1));
90 absim
($status, -MB
(593), 101 => MB
(1007), 102 => GB
(1));
94 my ($vmstatus, $res, $sum) = @_;
98 foreach my $vmid (keys %$res) {
99 my $diff = $res->{$vmid} - $vmstatus->{$vmid}->{balloon
};
101 # fixme: adjust freemem ?
102 $vmstatus->{$vmid}->{freemem
} += $diff;
103 $vmstatus->{$vmid}->{freemem
} = 0 if $vmstatus->{$vmid}->{freemem
} < 0;
104 $vmstatus->{$vmid}->{balloon
} = $res->{$vmid};
105 $sum->{$vmid} = $res->{$vmid};
107 $abschanges += $diff > 0 ?
$diff : -$diff;
111 return ($changes, $abschanges);
116 my ($vmstatus, $goal, %expect) = @_;
120 print "BALLOON SIM $tcount\n" if $debug;
122 $vmstatus = dclone
($vmstatus); # do not change original
128 my $res = PVE
::AutoBalloon
::compute_alg1
($vmstatus, $goal, MB
(100), $debug);
129 print Dumper
($res) if $debug;
130 ($changes, $abschanges) = abapply
($vmstatus, $res, $sum);
132 } while ($abschanges);
134 abcheck
($sum, %expect);
136 print "BALLOON SIM END\n" if $debug;
137 print Dumper
($vmstatus) if $debug;
143 my ($res, %expect) = @_;
145 foreach my $vmid (keys %expect) {
146 my $ev = $expect{$vmid};
147 if (defined ($res->{$vmid})) {
148 die "T$tcount: wrong value for VM $vmid ($ev != $res->{$vmid})\n"
149 if $ev != $res->{$vmid};
151 die "T$tcount: missing value for VM $vmid (extected $ev)\n";
155 foreach my $vmid (keys %$res) {
156 die "T$tcount: got unexpected result for $vmid\n"
157 if (defined($res->{$vmid}) &&
158 !defined($expect{$vmid}));
163 my ($vmstatus, $goal, %expect) = @_;
167 print "BALLOON TEST $tcount\n" if $debug;
168 my $res = PVE
::AutoBalloon
::compute_alg1
($vmstatus, $goal, MB
(100), $debug);
169 print Dumper
($res) if $debug;
171 abcheck
($res, %expect);
173 print "\n\n" if $debug;
180 return $mb*1000*1000;
184 return $gb*1000*1000*1000;