LeavaTailの日記

LeavaTailの日記

Linuxエンジニアを目指した技術者の備忘録

xfstests-bld で ファイルシステムのテストを実行する

概要

xfstests-bldは、xfstestsによるテスト実行をサポートするツールである。
本記事では、qemu/kvm上の仮想マシン (amd64)に対して、次の5つの手順について確認した。

はじめに

xfstestsはファイルシステム回帰テストのテストスイートであり、Linuxでメジャーなファイルシステム(xfs, ext2, ext4, cifs, btrfs, f2fs, reiserfs, gfs, jfs, udf, nfs, and tmpfs)でも使用することができる。
多くのLinuxファイルシステムを開発しているメンテナは、本流にマージする前にxfstestsのテストを実施している。
一方で、xfstestsのフルテストを実施するためには、テスト実施環境として求められる要件も少なくない。 つまり、必要なカーネルコンフィグやパッケージが多数あるので、一からxfstestsのテスト環境を構築することは難しいとされている。

xfstests-bldでは、そのような課題を解決するためのツールであり、xfstestsのビルドやテスト環境構築に必要なファイルが用意されている。
また、そこで構築されたテスト環境を、xfstests-bldから次のような環境で実行することができる。

そこで、本記事ではxfstests-bldを使ってQemu/kvm上の仮想マシン(amd64)に対して、xfstestsのテストを実行するまでの手順を確認する。

xfstests-bld (Qemu/kvm) の全体像

実験環境

本記事で使用した開発用PC (Host PC)の構成は次の通りとなっている。

環境 概要
CPU AMD Ryzen 3 3300X
RAM DDR4-2666 16GB ×2
OS Ubuntu Desktop 20.04.04
kernel 5.13.0-30-generic
QEMU 4.2.1 (Debian 1:4.2-3ubuntu6.19)

準備

KVMをインストールする前に、開発環境がKVMを使用できるかどうかを確認しておく。

  1. CPUが仮想化機能をサポートしているかどうか確認する。 (0ではない場合は使用できる模様)

     leava@ubuntu:~/work$ egrep -c '(vmx|svm)' /proc/cpuinfo
     8
    
  2. システムがKVMアクセラレーションを使用できるかどうか確認する。(kvm-okコマンドは、cpu-checkerパッケージに含まれる)

     leava@ubuntu:~/work$ sudo kvm-ok
     INFO: /dev/kvm exists
     KVM acceleration can be used
    

今回の実験環境では、KVMが使用できることが判明したので、次章以降で必要なパッケージをインストールする。

使用できない場合には、BIOSの設定やカーネルコンフィグの見直しが必要となる。

Qemu/kvmのインストール

  1. KVMに関連するパッケージをインストールする

     leava@ubuntu:~/work$ sudo apt update
     leava@ubuntu:~/work$ sudo apt install qemu-kvm
     leava@ubuntu:~/work$ sudo apt install libvirt-daemon-system libvirt-clients bridge-utils
     leava@ubuntu:~/work$ sudo apt install virt-manager
    
  2. 一般ユーザでも仮想マシンを実行できるように、libvirtkvmグループに追加する

     leava@ubuntu:~/work$ sudo adduser `whoami` libvirt
     leava@ubuntu:~/work$ sudo adduser `whoami` kvm  
    
  3. 正しくインストールされているかどうか確認する

     leava@ubuntu:~/work$ virsh list --all
      Id   Name   State
     --------------------
    
  4. libvertdの状態も確認しておく (activeになっていない場合には、sudo systemctl enable --now libvirtdを実行する)

     leava@ubuntu:~/work$ sudo systemctl status libvirtd
     ● libvirtd.service - Virtualization daemon
          Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
          Active: active (running) since Wed 2022-02-23 13:36:41 JST; 10min ago
     TriggeredBy: ● libvirtd.socket
                  ● libvirtd-ro.socket
                  ● libvirtd-admin.socket
            Docs: man:libvirtd(8)
                  https://libvirt.org
        Main PID: 1128 (libvirtd)
           Tasks: 19 (limit: 32768)
          Memory: 30.0M
          CGroup: /system.slice/libvirtd.service
                  ├─1128 /usr/sbin/libvirtd
                  ├─1403 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
                  └─1404 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
    

使用するファイルのダウンロード

xfstests-bldのソースコードとrootfsのダウンロードをする。
xfstests-bldでは、テスト環境用のrootfsを作成する方法が提供されている。building-rootfs.mdを参照。

注意

xfstests-bldのバージョンによって手順は異なるため、ドキュメントを読むこと。

今回はメンテナが用意してあるrootfs (amd64/arm64/i386) からamd64を使用する。

  1. xfstests-bldのソースコードをダウンロードする

     leava@ubuntu:~/work$ git clone git://git.kernel.org/pub/scm/fs/ext2/xfstests-bld.git fstests
    
  2. ワーキングディレクトリを変更する

     leava@ubuntu:~/work$ cd fstests/kvm-xfstests
    
  3. xfstestsのメンテナが用意したrootfsをダウンロードする

     leava@ubuntu:~/work/fstests/kvm-xfstests$ wget -O test-appliance/root_fs.img https://www.kernel.org/pub/linux/kernel/people/tytso/kvm-xfstests/root_fs.amd64.tar.xz
    
  4. ワーキングディレクトリを変更する

     leava@ubuntu:~/work/fstests/kvm-xfstests$ cd ../../
    

仮想マシン用のLinuxカーネルの準備

Qemu/kvmで動作させるカーネルを用意する。
xfstests-bldでは、xfstestsのテスト環境用カーネルコンフィグを生成するスクリプトが提供されている。

今回は、該当スクリプトで生成したコンフィグでカーネルバージョン5.15をビルドする。

  1. カーネルソースコードをダウンロードする

     leava@ubuntu:~/work$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
    
  2. ワーキングディレクトリを変更する

     leava@ubuntu:~/work$ cd linux
    
  3. v5.15をチェックアウトする

     leava@ubuntu:~/work/linux$ git checkout refs/tags/v5.15
    
  4. テスト実行に必要なコンフィグファイルを基に.configを作成する

     leava@ubuntu:~/work/linux$ ../fstests/kvm-xfstests.sh install-kconfig
    
  5. カーネルをビルドする

     leava@ubuntu:~/work/linux$ make -j$(nproc) bzImage
    
  6. ワーキングディレクトリを変更する

     leava@ubuntu:~/work/linux$ cd ../
    

xfstests-bldのセットアップ

xfstests-bldでQemu/kvmを利用する場合には、config.kvmファイルによって設定することができる。
最低限度設定しなければならないパラメータは、ローカルタイムゾーンカーネルのパスとなっている。

  1. ワーキングディレクトリを変更する

     leava@ubuntu:~/work$ cd fstests/kvm-xfstests
    
  2. configファイルw

     leava@ubuntu:~/work/fstests/kvm-xfstests$ echo "TZ=Asia/Tokyo" >> config.kvm 
     leava@ubuntu:~/work/fstests/kvm-xfstests$ echo "KERNEL=$HOME/work/linux/arch/x86/boot/bzImage" >> config.kvm
    
  3. ワーキングディレクトリを変更する

     leava@ubuntu:~/work/fstests/kvm-xfstests$ cd ../../
    

xfstests-bldのインストール

xfstests-bldのためのスクリプトを生成し、パスが通っているディレクトリに移動させる。

  1. ワーキングディレクトリを変更する

     leava@ubuntu:~/work$ cd fstests
    
  2. Qemu/kvm用のxfstests-bldをビルドする

     leava@ubuntu:~/work/fstests$ make kvm-xfstests.sh
    
  3. Qemu/kvm用のxfstests-bldをインストールする

     leava@ubuntu:~/work/fstests$ cp kvm-xfstests.sh ~/bin/kvm-xfstests
    
  4. ワーキングディレクトリを変更する

     leava@ubuntu:~/work/fstests$ cd ../
    

xfstests-bldの実行

xfstestesを実行するためには、kvm-xfstestsスクリプトを実行する。
kvm-xfstestsスクリプトには様々なパラメータを設定することができる。

ここで、kvm-xfstestsの使用方法について次の記載する。

    Usage: kvm-xfstests [<OPTIONS>] smoke|full
    Usage: kvm-xfstests [<OPTIONS>] <test> ...
    Usage: kvm-xfstests [<OPTIONS>] -g <group> ...
    Usage: kvm-xfstests [<OPTIONS>] shell|maint
    Usage: kvm-xfstests [<OPTIONS>] syz <repro>

    Common options are:
            -a              - Disable auto-exclude; run all tests
            -c config       - Specify a file system configuration
            -C count        - Run the specified tests multiple times
            -I image        - Use this test appliance image
            -m mountopts    - Append mount options to fs config
            -n nr_cpus      - Specify the number of cpu's
            -numa num       - Ask KVM to create <num> NUMA nodes
            -N              - Enable networking (requires root)
            -o opts         - Extra kernel command line options
            -O opts         - Extra options for test runner
            -r ram          - Specify memory to be used in megabytes
            -x group        - Exclude group of tests from running
            -X test         - Exclude test from running
            --kernel file   - Boot the specified kernel
            --initrd initrd - Boot with the specified initrd
            --no-log        - Don't save the log file for this run
            --no-action     - Print the command to start the VM

ただし、上記のオプションがすべてではない。(kvm-xfstests/util/parse_cliを参照)

起動したVMを終了させるためには、poweroffコマンド、またはCtrl-a xを押下する必要がある。
また、テスト結果は、logsディレクトリ以下に保存される。

今回は、次の5つの手順を確認する。

スモークテストの実行

kvm-xfstests smokeでスモークテスト (-g quick)を実行することができる。

     leava@ubuntu:~/work/$ kvm-xfstests smoke

     CMDLINE: "smoke"
     KERNEL: kernel  5.15.0-xfstests #456 SMP Wed Feb 23 19:12:12 JST 2022 x86_64
     FSTESTVER: blktests     3be7849 (Tue, 19 Oct 2021 12:22:17 -0700)
     FSTESTVER: e2fsprogs    v1.46.4-27-g6b7a6e4a (Thu, 4 Nov 2021 20:29:19 -0400)
     FSTESTVER: fio          fio-3.29 (Sat, 18 Dec 2021 07:09:32 -0700)
     FSTESTVER: fsverity     v1.4-4-gddc6bc9 (Wed, 22 Sep 2021 11:55:11 -0700)
     FSTESTVER: ima-evm-utils        v1.3.2 (Wed, 28 Oct 2020 13:18:08 -0400)
     FSTESTVER: nvme-cli     v1.16 (Thu, 11 Nov 2021 13:09:06 -0800)
     FSTESTVER: quota                v4.05-43-gd2256ac (Fri, 17 Sep 2021 14:04:16 +0200)
     FSTESTVER: util-linux   v2.37.2 (Mon, 16 Aug 2021 15:23:50 +0200)
     FSTESTVER: xfsprogs     v5.13.0 (Fri, 20 Aug 2021 12:03:57 -0400)
     FSTESTVER: xfstests     linux-v3.8-3438-gf0a05db9 (Sun, 9 Jan 2022 18:58:11 -0500)
     FSTESTVER: xfstests-bld 8b681c94 (Sat, 8 Jan 2022 22:20:42 -0500)
     FSTESTVER: zz_build-distro      bullseye
     FSTESTCFG: "4k"
     FSTESTSET: "-g quick"
     FSTESTEXC: ""
     FSTESTOPT: "aex"
     MNTOPTS: ""
     CPUS: "2"
     MEM: "1958.76"

テストが終了すると、自動で仮想マシンが終了する。

シェルの起動

kvm-xfstests shell仮想マシンにログインすることができる。

    leava@ubuntu:~/work/$ kvm-xfstests shell

    Debian GNU/Linux 11 kvm-xfstests ttyS0

    kvm-xfstests login: root (automatic login)

    Linux kvm-xfstests 5.15.0-xfstests #456 SMP Wed Feb 23 19:12:12 JST 2022 x86_64

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    Last login: Thu Feb 24 23:56:29 JST 2022 on ttyS1
    COLUMNS=238
    LINES=58
    root@kvm-xfstests:~# 

仮想マシンを終了すると、この環境で更新された内容は破棄されるので注意が必要である。
そのため、rootfsを更新したい場合には、kvm-xfstestsmaintを実行する。

シェルからテストを実行するためには、/root/runtest.shを実行する。

    root@kvm-xfstests:~# /root/runtests.sh 
    CMDLINE: ""
    KERNEL: kernel  5.15.0-xfstests #456 SMP Wed Feb 23 19:12:12 JST 2022 x86_64
    FSTESTVER: blktests     3be7849 (Tue, 19 Oct 2021 12:22:17 -0700)
    FSTESTVER: e2fsprogs    v1.46.4-27-g6b7a6e4a (Thu, 4 Nov 2021 20:29:19 -0400)
    FSTESTVER: fio          fio-3.29 (Sat, 18 Dec 2021 07:09:32 -0700)
    FSTESTVER: fsverity     v1.4-4-gddc6bc9 (Wed, 22 Sep 2021 11:55:11 -0700)
    FSTESTVER: ima-evm-utils        v1.3.2 (Wed, 28 Oct 2020 13:18:08 -0400)
    FSTESTVER: nvme-cli     v1.16 (Thu, 11 Nov 2021 13:09:06 -0800)
    FSTESTVER: quota                v4.05-43-gd2256ac (Fri, 17 Sep 2021 14:04:16 +0200)
    FSTESTVER: util-linux   v2.37.2 (Mon, 16 Aug 2021 15:23:50 +0200)
    FSTESTVER: xfsprogs     v5.13.0 (Fri, 20 Aug 2021 12:03:57 -0400)
    FSTESTVER: xfstests     linux-v3.8-3438-gf0a05db9 (Sun, 9 Jan 2022 18:58:11 -0500)
    FSTESTVER: xfstests-bld 8b681c94 (Sat, 8 Jan 2022 22:20:42 -0500)
    FSTESTVER: zz_build-distro      bullseye
    FSTESTCFG: "4k"
    FSTESTSET: "generic/001"
    FSTESTEXC: ""
    FSTESTOPT: "aex"
    MNTOPTS: ""
    CPUS: "2"
    MEM: "1958.76"
                   total        used        free      shared  buff/cache   available
    Mem:            1958          82        1775           0          99        1843
    Swap:              0           0           0

このとき、パラメータは/root/test-envに設定されている。
それらの環境変数を設定することで、xfstestsのテスト実施環境を変更することができる。

この環境は、次のポート(TCP)がデバッグ目的で使用可能となっている。

例えば、開発用PCからgdbでアクセスすることができる。

    leava@ubuntu:~/work$ gdb linux/vmlinux
    (gdb) target remote :7499
    Remote debugging using :7499
    0xffffffff81dcbce0 in default_idle () at ./arch/x86/include/asm/irqflags.h:51
    51              asm volatile("sti; hlt": : :"memory");

実施するテストの変更

xfstests-bldでは、xfstestsと同様に特定のテストのみを実施することができる。
例えば、generic/001のテストを実施したい場合には、次のように実行すればよい。

    leava@ubuntu:~/work$ kvm-xfstests generic/001
    CMDLINE: "generic/001"
    KERNEL: kernel  5.15.0-xfstests #456 SMP Wed Feb 23 19:12:12 JST 2022 x86_64
    FSTESTVER: blktests     3be7849 (Tue, 19 Oct 2021 12:22:17 -0700)
    FSTESTVER: e2fsprogs    v1.46.4-27-g6b7a6e4a (Thu, 4 Nov 2021 20:29:19 -0400)
    FSTESTVER: fio          fio-3.29 (Sat, 18 Dec 2021 07:09:32 -0700)
    FSTESTVER: fsverity     v1.4-4-gddc6bc9 (Wed, 22 Sep 2021 11:55:11 -0700)
    FSTESTVER: ima-evm-utils        v1.3.2 (Wed, 28 Oct 2020 13:18:08 -0400)
    FSTESTVER: nvme-cli     v1.16 (Thu, 11 Nov 2021 13:09:06 -0800)
    FSTESTVER: quota                v4.05-43-gd2256ac (Fri, 17 Sep 2021 14:04:16 +0200)
    FSTESTVER: util-linux   v2.37.2 (Mon, 16 Aug 2021 15:23:50 +0200)
    FSTESTVER: xfsprogs     v5.13.0 (Fri, 20 Aug 2021 12:03:57 -0400)
    FSTESTVER: xfstests     linux-v3.8-3438-gf0a05db9 (Sun, 9 Jan 2022 18:58:11 -0500)
    FSTESTVER: xfstests-bld 8b681c94 (Sat, 8 Jan 2022 22:20:42 -0500)
    FSTESTVER: zz_build-distro      bullseye
    FSTESTCFG: "all"
    FSTESTSET: "generic/001"
    FSTESTEXC: ""
    FSTESTOPT: "aex"
    MNTOPTS: ""
    CPUS: "2"
    MEM: "1958.76"
                   total        used        free      shared  buff/cache   available
    Mem:            1958          80        1782           0          95        1845
    Swap:              0           0           0

また、xfstestsと同様にグループによるテストの指定も可能となっている。 例えば、rwグループに属しているテストを実施したい場合には、次のように実行すればよい。

    leava@ubuntu:~/work$ kvm-xfstests -g rw
    CMDLINE: "-g rw"
    KERNEL: kernel  5.15.0-xfstests #456 SMP Wed Feb 23 19:12:12 JST 2022 x86_64
    FSTESTVER: blktests     3be7849 (Tue, 19 Oct 2021 12:22:17 -0700)
    FSTESTVER: e2fsprogs    v1.46.4-27-g6b7a6e4a (Thu, 4 Nov 2021 20:29:19 -0400)
    FSTESTVER: fio          fio-3.29 (Sat, 18 Dec 2021 07:09:32 -0700)
    FSTESTVER: fsverity     v1.4-4-gddc6bc9 (Wed, 22 Sep 2021 11:55:11 -0700)
    FSTESTVER: ima-evm-utils        v1.3.2 (Wed, 28 Oct 2020 13:18:08 -0400)
    FSTESTVER: nvme-cli     v1.16 (Thu, 11 Nov 2021 13:09:06 -0800)
    FSTESTVER: quota                v4.05-43-gd2256ac (Fri, 17 Sep 2021 14:04:16 +0200)
    FSTESTVER: util-linux   v2.37.2 (Mon, 16 Aug 2021 15:23:50 +0200)
    FSTESTVER: xfsprogs     v5.13.0 (Fri, 20 Aug 2021 12:03:57 -0400)
    FSTESTVER: xfstests     linux-v3.8-3438-gf0a05db9 (Sun, 9 Jan 2022 18:58:11 -0500)
    FSTESTVER: xfstests-bld 8b681c94 (Sat, 8 Jan 2022 22:20:42 -0500)
    FSTESTVER: zz_build-distro      bullseye
    FSTESTCFG: "all"
    FSTESTSET: "-g rw"
    FSTESTEXC: ""
    FSTESTOPT: "aex"
    MNTOPTS: ""
    CPUS: "2"
    MEM: "1958.76"
                   total        used        free      shared  buff/cache   available
    Mem:            1958          80        1782           0          95        1845
    Swap:              0           0           0

テスト用ファイルシステムの変更

xfstests-bldでは、PRIMARY_FSTYPEによってテスト対象のファイルシステムを指定する。
このパラメータは、kvm-xfstests/config.commonファイルを編集するか、--primary_fstypeオプションを指定する必要がある。

例えば、恒久的にxfsファイルシステムでテストしたい場合には、次のようにkvm-xfstests/config.commonファイルを修正すればよい。

diff --git a/kvm-xfstests/config.common b/kvm-xfstests/config.common
index 12cae0a..1de021f 100644
--- a/kvm-xfstests/config.common
+++ b/kvm-xfstests/config.common
@@ -4,4 +4,4 @@
 # Variables set here may be overridden in ~/.config/xfstests-common
 #
 
-PRIMARY_FSTYPE="ext4"
+PRIMARY_FSTYPE="xfs"

一方で、一時的にxfsファイルシステムでテストを実行したい場合には、次のように実行すればよい。

    leava@ubuntu:~/work$ kvm-xfstests --primary_fstype xfs generic/001
    CMDLINE: "--primary_fstype xfs smoke"
    KERNEL: kernel  5.15.0-xfstests #456 SMP Wed Feb 23 19:12:12 JST 2022 x86_64
    FSTESTVER: blktests     3be7849 (Tue, 19 Oct 2021 12:22:17 -0700)
    FSTESTVER: e2fsprogs    v1.46.4-27-g6b7a6e4a (Thu, 4 Nov 2021 20:29:19 -0400)
    FSTESTVER: fio          fio-3.29 (Sat, 18 Dec 2021 07:09:32 -0700)
    FSTESTVER: fsverity     v1.4-4-gddc6bc9 (Wed, 22 Sep 2021 11:55:11 -0700)
    FSTESTVER: ima-evm-utils        v1.3.2 (Wed, 28 Oct 2020 13:18:08 -0400)
    FSTESTVER: nvme-cli     v1.16 (Thu, 11 Nov 2021 13:09:06 -0800)
    FSTESTVER: quota                v4.05-43-gd2256ac (Fri, 17 Sep 2021 14:04:16 +0200)
    FSTESTVER: util-linux   v2.37.2 (Mon, 16 Aug 2021 15:23:50 +0200)
    FSTESTVER: xfsprogs     v5.13.0 (Fri, 20 Aug 2021 12:03:57 -0400)
    FSTESTVER: xfstests     linux-v3.8-3438-gf0a05db9 (Sun, 9 Jan 2022 18:58:11 -0500)
    FSTESTVER: xfstests-bld 8b681c94 (Sat, 8 Jan 2022 22:20:42 -0500)
    FSTESTVER: zz_build-distro      bullseye
    FSTESTCFG: "4k"
    FSTESTSET: "-g quick"
    FSTESTEXC: ""
    FSTESTOPT: "aex"
    MNTOPTS: ""
    CPUS: "2"
    MEM: "1958.76"
                   total        used        free      shared  buff/cache   available
    Mem:            1958          81        1780           0          96        1845
    Swap:     

テスト用ファイルシステムのパラメータ変更

xfstests-bldでは、cfgによってテスト用ファイルシステムのパラメータを変更することができる。
ここで、ファイルシステムのパラメータとは「mkfsの引数」や「マウントオプション」である。

デフォルトで用意されているcfgファイルは、fstests/kvm-xfstests/test-appliance/files/root/fs/${fsname}/cfgに保存されている。
kvm-xfstestsでは、これらのファイルを-cオプションで指定することができる。

例えば、nojournalgeneric/001のテストを実行したい場合には、次のように実行すればよい。

    leava@ubuntu:~/work$ kvm-xfstests -c nojournal generic/001
    CMDLINE:   -c 4k generic/001
    CPUS:      2
    MEM:       1958.76

    ext4/4k: 1 tests, 4 seconds
      generic/001  Pass     4s
    Totals: 1 tests, 0 skipped, 0 failures, 0 errors, 4s

    FSTESTVER: blktests 3be7849 (Tue, 19 Oct 2021 12:22:17 -0700)
    FSTESTVER: e2fsprogs v1.46.4-27-g6b7a6e4a (Thu, 4 Nov 2021 20:29:19 -0400)
    FSTESTVER: fio  fio-3.29 (Sat, 18 Dec 2021 07:09:32 -0700)
    FSTESTVER: fsverity v1.4-4-gddc6bc9 (Wed, 22 Sep 2021 11:55:11 -0700)
    FSTESTVER: ima-evm-utils v1.3.2 (Wed, 28 Oct 2020 13:18:08 -0400)
    FSTESTVER: nvme-cli v1.16 (Thu, 11 Nov 2021 13:09:06 -0800)
    FSTESTVER: quota  v4.05-43-gd2256ac (Fri, 17 Sep 2021 14:04:16 +0200)
    FSTESTVER: util-linux v2.37.2 (Mon, 16 Aug 2021 15:23:50 +0200)
    FSTESTVER: xfsprogs v5.13.0 (Fri, 20 Aug 2021 12:03:57 -0400)
    CMDLINE: "-c nojournal generic/001"
    KERNEL: kernel  5.15.0-xfstests #456 SMP Wed Feb 23 19:12:12 JST 2022 x86_64
    FSTESTVER: blktests     3be7849 (Tue, 19 Oct 2021 12:22:17 -0700)
    FSTESTVER: e2fsprogs    v1.46.4-27-g6b7a6e4a (Thu, 4 Nov 2021 20:29:19 -0400)
    FSTESTVER: fio          fio-3.29 (Sat, 18 Dec 2021 07:09:32 -0700)
    FSTESTVER: fsverity     v1.4-4-gddc6bc9 (Wed, 22 Sep 2021 11:55:11 -0700)
    FSTESTVER: ima-evm-utils        v1.3.2 (Wed, 28 Oct 2020 13:18:08 -0400)
    FSTESTVER: nvme-cli     v1.16 (Thu, 11 Nov 2021 13:09:06 -0800)
    FSTESTVER: quota                v4.05-43-gd2256ac (Fri, 17 Sep 2021 14:04:16 +0200)
    FSTESTVER: util-linux   v2.37.2 (Mon, 16 Aug 2021 15:23:50 +0200)
    FSTESTVER: xfsprogs     v5.13.0 (Fri, 20 Aug 2021 12:03:57 -0400)
    FSTESTVER: xfstests     linux-v3.8-3438-gf0a05db9 (Sun, 9 Jan 2022 18:58:11 -0500)
    FSTESTVER: xfstests-bld 8b681c94 (Sat, 8 Jan 2022 22:20:42 -0500)
    FSTESTVER: zz_build-distro      bullseye
    FSTESTCFG: "nojournal"
    FSTESTSET: "generic/001"
    FSTESTEXC: ""
    FSTESTOPT: "aex"
    MNTOPTS: ""
    CPUS: "2"
    MEM: "1958.76"
                   total        used        free      shared  buff/cache   available
    Mem:            1958          81        1781           0          95        1844
    Swap:              0           0           0        

また、cfgファイルを指定しなかった場合は、fstests/kvm-xfstests/test-appliance/files/root/fs/${fsname}/cfg/all.listが参照される。

おわりに

本記事では、xfstests-bldによってqemu/kvm上の仮想マシン(amd64)に対して、xfstestsのテストを実行する手順について確認した。
xfstests単体でテストを実行する場合に比べて、容易にテスト環境が作成できるため、これからxfstestsを実行してみたいと思っているユーザはぜひ確認してほしい。

また、本記事でまとめた内容はxfstests-bldのほんの一部の機能である。
その他の使い方 (例えば、rootfsのカスタマイズ方法) については、ドキュメントやスクリプトの中身を確認してほしい。

変更履歴

  • 2022/2/27: 記事公開

参考文献