SDB:XFStests
如何在 openSUSE 上运行 xfstests。
情况
XFS 团队在 2000 年代初期从 SGI 带入了 xfstests。
从那时起,它得到了增强,包括针对许多 Linux 文件系统的文件系统测试,但它保留了原始名称。
它没有为 openSUSE 打包,但它肯定可以轻松下载、安装和运行。
流程
xfstests 新测试人员说明
这些说明是为 openSUSE 定制的,但最初来自以下 2 个来源
http://xfs.org/index.php/Getting_the_latest_source_code http://www.how2forge.org/comment/reply/4443
首先你需要运行 xfstests
首先确保你拥有基本工具和软件包(对于 SLE 你需要 SDK 仓库)
$ zypper install git gcc libtool automake gettext-tools libattr-devel libacl-devel libuuid-devel libblkid-devel btrfsprogs
然后安装基本的 xfs 源
$ mkdir xfs_playground; cd xfs_playground $ git clone git://oss.sgi.com/xfs/cmds/xfsprogs $ git clone git://oss.sgi.com/xfs/cmds/xfstests
(你可以使用 git clone https://github.com/adityadani/xfstests 获取包含快照测试实用程序的版本)
(如果你正在跟踪当前版本,请不时使用 git pull 获取最新工作)
$ cd xfsprogs $ make $ sudo make install-qa # try 'make install-dev' if this fails, it installs xfs header files $ cd ../xfstests $ make
一旦“make”成功,你需要设置某些环境变量。你的机器上需要有两个不同的分区:1] 一个作为测试设备。2] 一个作为暂存设备。(暂存设备不是强制性的。但是某些测试需要暂存设备。)设置环境变量
export TEST_DEV=test_device-name export TEST_DIR=test_device-mount-point export SCRATCH_DEV=scratch_device-name export SCRATCH_MNT=scratch_device-mount-point export FSTYP=btrfs
(是的,变量名不一致。并假设你正在测试 btrfs。)
xfstests 至少支持 btrfs、xfs 和 ext4。
运行测试
$ cd xfstests $ ./check -g auto
上述命令默认运行 xfs 测试套件中的许多测试。如果你省略 -g 参数,它将尝试运行所有测试。还有一个快速组(-g quick),应该在 5 分钟内运行。请参阅 xfstests 目录中的“group”文件,了解哪些测试属于哪个组。
为了运行特定测试,例如测试编号:102,那么,
$ ./check 102 $ ./check 001 002 003 ….
(check 脚本测试每个“测试脚本”的返回值并将其
值与预期输出进行比较。如果测试失败,它会在 .out.bad 文件中生成差异)
运行快照测试
目前只有一个测试 256。你需要直接从 next4 团队获取测试 256,因为它仍在开发中,或者使用以下链接 https://github.com/adityadani/xfstests
为了运行测试:要运行测试,两个设备/分区都需要挂载。
目前 btrfs 和 ext4dev 都受支持,但 ext4dev 需要未记录的调整才能工作。因此,请先尝试 btrfs
1] 首先设置如上所述的环境变量。
2] 将设备挂载到指定的挂载点。
mkfs.btrfs $TEST_DEV mkfs.btrfs $SCRATCH_DEV mount $TEST_DEV $TEST_DIR mount $SCRATCH_DEV $SCRATCH_MNT
3] 运行测试编号 256
$ ./check 256
请注意,上述测试仍在开发中,因此存在某些错误。