|
|
Subscribe / Log in / New account

Filesystem test suites

Please consider subscribing to LWN

Subscriptions are the lifeblood of LWN.net. If you appreciate this content and would like to see more of it, your subscription will help to ensure that LWN continues to thrive. Please visit this page to join up and keep LWN on the net.

By Jake Edge
June 13, 2018
LSFMM

While the 2018 Linux Storage, Filesystem, and Memory-Management Summit (LSFMM) filesystem track session was advertised as being a filesystem test suite "bakeoff", it actually focused on how to make the existing test suites more accessible. Kent Overstreet said that he has learned over the years that various filesystem developers have their own scripts for testing using QEMU and other tools. He and Ted Ts'o put the session together to try to share some of that information (and code) more widely.

Most of the scripts and other code has not been polished or turned into a project, Overstreet continued. Bringing new people up to speed on the tests and how they are run takes time, but developers want to know how to run the tests before they send code to the maintainer.

Ts'o said that he had a goal for his xfstests-bld tool: give people submitting ext4 patches no excuses for not running the smoke tests. He wants to make sure that patches have been at least minimally tested before spending time reviewing them. Xfstests-bld has support for a handful of different filesystems, but just with default options for any beyond ext4; his hope is that other filesystems will also use it and provide suitable configurations.

J. Bruce Fields said that he runs the smoke tests on all patches anyway, so he would rather have patch submitters run their own tests on the code. But Ts'o was adamant that since there are more submitters than maintainers, he wants to know that the smoke tests have been run before looking at a submission.

Overstreet has a test framework that builds a test kernel, boots into it, and builds the tests and runs them with QEMU. It uses debootstrap to build a root filesystem and users do not have to mess with Kconfig; there is a stripped-down configuration that the test uses. Ts'o said that he has two configurations, one for QEMU and another for Google Compute Engine. Overstreet wondered if it was "silly for us all to maintain our own" test harnesses.

Mimi Zohar had a different complaint: getting started with xfstests is difficult. There is minimal documentation and no default configuration, which means it takes a long time to get going. That is why some have created these test scripts, Ts'o said.

Ts'o further described his framework. It can run tests in KVM/QEMU or push them to Android devices. The smoke parameter will run the default tests for the filesystem being tested; for ext4, those tests take about ten minutes. Full testing of ext4 takes about 20 hours, but an intern he worked with was able to reduce that to two hours by sharding the tests in Google Compute Engine. The Android xfstests require a rooted device and, likely, one you are not particularly attached to; the tests do a lot of writes, which may drastically reduce the lifetime of the device.

Eric Sandeen noted that the documentation for the different tests and frameworks is scattered among various web pages; he wondered if it could be centralized somewhere. Dave Chinner suggested patches to the xfstests documentation that at least pointed those interested to all of the different pages.


Index entries for this article
KernelDevelopment tools/Testing
ConferenceStorage Filesystem & Memory Management/2018


(Log in to post comments)

Filesystem test suites

Posted Jun 13, 2018 20:14 UTC (Wed) by jhoblitt (subscriber, #77733) [Link]

While I am completely clueless about kernel fs development, it sounds like a true CI system/service is needed to reduce the bar for entry. Of course, making such a service stable with quasi-public use is probably non-trivial.

Filesystem test suites

Posted Jun 14, 2018 22:50 UTC (Thu) by helsleym (subscriber, #92730) [Link]

"Full testing of ext4 takes about 20 hours, but an intern he worked with was able to reduce that to two hours by sharding the tests in Google Compute Engine."

Without details onnumber of nodes and ballpark monetary costs developers can expect to pay for one 2-hour test run on GCE it's kind of difficult to get excited about using GCE.

That said, 10 minutes for a local smoke test is quite reasonable.


Copyright © 2018, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds