Richard W.M. Jones
2018-Nov-14 18:29 UTC
[Libguestfs] [PATCH v2] test-data: Allow tests to be run when Btrfs is not available.
v2: - Moved the btrfs available test into the subclause where it is used. Note I got tired of fighting emacs indentation mode and I pushed a whitespace only patch which fixes the indentation to be 4 spaces instead of 2 spaces: https://github.com/libguestfs/libguestfs/commit/df54c75d4c53ed580e5269306e11e0758d169452 This v2 patch requires that one. Rich.
Richard W.M. Jones
2018-Nov-14 18:29 UTC
[Libguestfs] [PATCH v2] test-data: Allow tests to be run when Btrfs is not available.
Create the fedora-btrfs.img as an empty file.
The only place this is used explicitly is tests/mountable/
test-mountable-inspect.sh, but that test already skips if !btrfs.
Also this is used via guests-all-good.xml, but the script that creates
this XML skips the file if it has zero size.
---
test-data/phony-guests/make-fedora-img.pl | 52 +++++++++++++++--------
1 file changed, 35 insertions(+), 17 deletions(-)
diff --git a/test-data/phony-guests/make-fedora-img.pl
b/test-data/phony-guests/make-fedora-img.pl
index 9eb0dc2ad..4ba49b0ca 100755
--- a/test-data/phony-guests/make-fedora-img.pl
+++ b/test-data/phony-guests/make-fedora-img.pl
@@ -123,34 +123,52 @@ EOF
}
elsif ($ENV{LAYOUT} eq 'btrfs') {
- push (@images, "fedora-btrfs.img-t");
+ # Test if btrfs is available.
+ my $g2 = Sys::Guestfs->new ();
+ $g2->add_drive ("/dev/null");
+ $g2->launch ();
+ my $btrfs_available = $g2->feature_available (["btrfs"]);
+ $g2->close ();
- open (my $fstab, '>', "fedora.fstab") or die;
- print $fstab <<EOF;
+ if (!$btrfs_available) {
+ # Btrfs not available, create an empty image.
+ push (@images, "fedora-btrfs.img");
+
+ unlink ("fedora-btrfs.img");
+ open (my $img, '>', "fedora-btrfs.img");
+ close ($img) or die;
+ exit 0;
+ }
+ else {
+ push (@images, "fedora-btrfs.img-t");
+
+ open (my $fstab, '>', "fedora.fstab") or die;
+ print $fstab <<EOF;
LABEL=BOOT /boot ext2 default 0 0
LABEL=ROOT / btrfs subvol=root 0 0
LABEL=ROOT /home btrfs subvol=home 0 0
EOF
- close ($fstab) or die;
+ close ($fstab) or die;
- $bootdev = '/dev/sda1';
+ $bootdev = '/dev/sda1';
- $g->disk_create ("fedora-btrfs.img-t", "raw",
$IMAGE_SIZE);
+ $g->disk_create ("fedora-btrfs.img-t", "raw",
$IMAGE_SIZE);
- $g->add_drive ("fedora-btrfs.img-t", format =>
"raw");
- $g->launch ();
+ $g->add_drive ("fedora-btrfs.img-t", format =>
"raw");
+ $g->launch ();
- $g->part_init ('/dev/sda', 'mbr');
- $g->part_add ('/dev/sda', 'p', 64, 524287);
- $g->part_add ('/dev/sda', 'p', 524288, -64);
+ $g->part_init ('/dev/sda', 'mbr');
+ $g->part_add ('/dev/sda', 'p', 64, 524287);
+ $g->part_add ('/dev/sda', 'p', 524288, -64);
- $g->mkfs_btrfs (['/dev/sda2'], label => 'ROOT');
- $g->mount ('/dev/sda2', '/');
- $g->btrfs_subvolume_create ('/root');
- $g->btrfs_subvolume_create ('/home');
- $g->umount ('/');
+ $g->mkfs_btrfs (['/dev/sda2'], label => 'ROOT');
+ $g->mount ('/dev/sda2', '/');
+ $g->btrfs_subvolume_create ('/root');
+ $g->btrfs_subvolume_create ('/home');
+ $g->umount ('/');
- $g->mount ('btrfsvol:/dev/sda2/root', '/');
+ $g->mount ('btrfsvol:/dev/sda2/root', '/');
+ }
}
elsif ($ENV{LAYOUT} eq 'lvm-luks') {
--
2.19.0.rc0
Pino Toscano
2018-Nov-20 15:37 UTC
Re: [Libguestfs] [PATCH v2] test-data: Allow tests to be run when Btrfs is not available.
On Wednesday, 14 November 2018 19:29:14 CET Richard W.M. Jones wrote:> Create the fedora-btrfs.img as an empty file. > > The only place this is used explicitly is tests/mountable/ > test-mountable-inspect.sh, but that test already skips if !btrfs. > > Also this is used via guests-all-good.xml, but the script that creates > this XML skips the file if it has zero size. > ---LGTM. Thanks, -- Pino Toscano
Reasonably Related Threads
- [PATCH] Fix make-fedora-img for btrfs minimum size
- [PATCH v2] test-data: Allow tests to be run when Btrfs is not available.
- Remaining btrfs patches
- [PATCH 0/8] Add MD inspection support to libguestfs
- [PATCH] test-data: Allow tests to be run when Btrfs is not available.