blob: c8ccab38ab6f00affb319417d24b7ae26064c548 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import ./make-test.nix ({ pkgs, lib, ...} : {
meta.maintainers = [ lib.maintainers.eelco ];
machine = { config, pkgs, ... }: {
virtualisation.diskSize = 512;
fileSystems = lib.mkVMOverride {
"/".autoResize = true;
};
};
testScript =
''
# Create a VM with a 512 MiB disk.
$machine->start;
$machine->waitForUnit("multi-user.target");
my $blocks = $machine->succeed("stat -c %b -f /");
my $bsize = $machine->succeed("stat -c %S -f /");
my $size = $blocks * $bsize;
die "wrong free space $size" if $size < 480 * 1024 * 1024 || $size > 512 * 1024 * 1024;
$machine->succeed("touch /marker");
$machine->shutdown;
# Grow the disk to 1024 MiB.
system("qemu-img resize vm-state-machine/machine.qcow2 1024M") == 0 or die;
# Start the VM again and check whether the initrd has correctly
# grown the root filesystem.
$machine->start;
$machine->waitForUnit("multi-user.target");
$machine->succeed("[ -e /marker ]");
my $blocks = $machine->succeed("stat -c %b -f /");
my $size = $blocks * $bsize;
die "wrong free space $size" if $size < 980 * 1024 * 1024 || $size > 1024 * 1024 * 1024;
'';
})
|