kumquat-buildroot/support/testing/tests/fs/test_ext.py
Ricardo Martincoski ef8d1f1b15 support/testing: fix code style
Fix the trivial warnings from flake8:
 - remove modules imported but unused;
 - use 2 lines before class or module level method;
 - remove blank line at end of file.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-10-06 18:56:49 +02:00

126 lines
4.5 KiB
Python

import os
import subprocess
import infra.basetest
VOLNAME_PROP = "Filesystem volume name"
REVISION_PROP = "Filesystem revision #"
FEATURES_PROP = "Filesystem features"
BLOCKCNT_PROP = "Block count"
INODECNT_PROP = "Inode count"
RESBLKCNT_PROP = "Reserved block count"
CHECK_FS_TYPE_CMD = "mount | grep '/dev/root on / type {}'"
def dumpe2fs_run(builddir, image):
cmd = ["host/sbin/dumpe2fs", os.path.join("images", image)]
ret = subprocess.check_output(cmd,
stderr=open(os.devnull, "w"),
cwd=builddir,
env={"LANG": "C"})
return ret.strip().splitlines()
def dumpe2fs_getprop(out, prop):
for line in out:
fields = line.split(": ")
if fields[0] == prop:
return fields[1].strip()
def boot_img_and_check_fs_type(emulator, builddir, fs_type):
img = os.path.join(builddir, "images", "rootfs.{}".format(fs_type))
emulator.boot(arch="armv7",
kernel="builtin",
kernel_cmdline=["root=/dev/mmcblk0",
"rootfstype={}".format(fs_type)],
options=["-drive", "file={},if=sd".format(img)])
emulator.login()
_, exit_code = emulator.run(CHECK_FS_TYPE_CMD.format(fs_type))
return exit_code
class TestExt2(infra.basetest.BRTest):
config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
"""
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_2r0=y
BR2_TARGET_ROOTFS_EXT2_LABEL="foobaz"
# BR2_TARGET_ROOTFS_TAR is not set
"""
def test_run(self):
out = dumpe2fs_run(self.builddir, "rootfs.ext2")
self.assertEqual(dumpe2fs_getprop(out, VOLNAME_PROP), "foobaz")
self.assertEqual(dumpe2fs_getprop(out, REVISION_PROP), "0 (original)")
exit_code = boot_img_and_check_fs_type(self.emulator,
self.builddir, "ext2")
self.assertEqual(exit_code, 0)
class TestExt2r1(infra.basetest.BRTest):
config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
"""
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_2r1=y
BR2_TARGET_ROOTFS_EXT2_LABEL="foobar"
# BR2_TARGET_ROOTFS_TAR is not set
"""
def test_run(self):
out = dumpe2fs_run(self.builddir, "rootfs.ext2")
self.assertEqual(dumpe2fs_getprop(out, VOLNAME_PROP), "foobar")
self.assertEqual(dumpe2fs_getprop(out, REVISION_PROP), "1 (dynamic)")
self.assertNotIn("has_journal", dumpe2fs_getprop(out, FEATURES_PROP))
exit_code = boot_img_and_check_fs_type(self.emulator,
self.builddir, "ext2")
self.assertEqual(exit_code, 0)
class TestExt3(infra.basetest.BRTest):
config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
"""
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_3=y
# BR2_TARGET_ROOTFS_TAR is not set
"""
def test_run(self):
out = dumpe2fs_run(self.builddir, "rootfs.ext3")
self.assertEqual(dumpe2fs_getprop(out, REVISION_PROP), "1 (dynamic)")
self.assertIn("has_journal", dumpe2fs_getprop(out, FEATURES_PROP))
self.assertNotIn("extent", dumpe2fs_getprop(out, FEATURES_PROP))
exit_code = boot_img_and_check_fs_type(self.emulator,
self.builddir, "ext3")
self.assertEqual(exit_code, 0)
class TestExt4(infra.basetest.BRTest):
config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
"""
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="16384"
BR2_TARGET_ROOTFS_EXT2_INODES=3000
BR2_TARGET_ROOTFS_EXT2_RESBLKS=10
# BR2_TARGET_ROOTFS_TAR is not set
"""
def test_run(self):
out = dumpe2fs_run(self.builddir, "rootfs.ext4")
self.assertEqual(dumpe2fs_getprop(out, REVISION_PROP), "1 (dynamic)")
self.assertEqual(dumpe2fs_getprop(out, BLOCKCNT_PROP), "16384")
# Yes there are 8 more inodes than requested
self.assertEqual(dumpe2fs_getprop(out, INODECNT_PROP), "3008")
self.assertEqual(dumpe2fs_getprop(out, RESBLKCNT_PROP), "1638")
self.assertIn("has_journal", dumpe2fs_getprop(out, FEATURES_PROP))
self.assertIn("extent", dumpe2fs_getprop(out, FEATURES_PROP))
exit_code = boot_img_and_check_fs_type(self.emulator,
self.builddir, "ext4")
self.assertEqual(exit_code, 0)