AUTHOR = "Autotest Team <autotest@test.kernel.org>"
TIME = "MEDIUM"
NAME = "Sample - Filesystem tests with different filesystems"
TEST_TYPE = "client"
TEST_CLASS = "Kernel"
TEST_CATEGORY = "Functional"

DOC = """
Runs a series of filesystem tests on a loopback partition using different
filesystem types. This shows some features of the job.partition method, such as
creating loopback partitions instead of using real disk partitions, looping.
"""

partition = job.partition('/tmp/looped', 1024, job.tmpdir)
# You can use also 'real' partitions, just comment the above and uncomment
# the below
#partition = job.partition('/dev/sdb1', job.tmpdir)

def test_fs():
    partition.mkfs(fstype)
    partition.mount()
    try:
        job.run_test('fsx', dir=partition.mountpoint, tag=fstype)
        job.run_test('iozone', dir=partition.mountpoint, tag=fstype)
        job.run_test('dbench', dir=partition.mountpoint, tag=fstype)
    finally:
        partition.unmount()
        partition.fsck()


for fstype in ('ext2', 'ext3', 'jfs', 'xfs', 'reiserfs'):
    job.run_group(test_fs)
