123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import os
- import infra
- import subprocess
- from infra.basetest import BRTest
- class TestBmapTools(BRTest):
- __test__ = False
- sample_script = "tests/package/sample_bmap_tools.sh"
- copy_script = 'tests/package/copy-sample-script-to-target.sh'
- config = \
- """
- BR2_arm=y
- BR2_cortex_a8=y
- BR2_TOOLCHAIN_EXTERNAL=y
- BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
- BR2_PACKAGE_BMAP_TOOLS=y
- BR2_ROOTFS_POST_BUILD_SCRIPT="{}"
- BR2_ROOTFS_POST_SCRIPT_ARGS="{}"
- BR2_TARGET_ROOTFS_EXT2=y
- BR2_TARGET_ROOTFS_EXT2_4=y
- BR2_TARGET_ROOTFS_EXT2_SIZE="65536"
- # BR2_TARGET_ROOTFS_TAR is not set
- BR2_PACKAGE_UTIL_LINUX=y
- BR2_PACKAGE_UTIL_LINUX_FALLOCATE=y
- BR2_PACKAGE_E2FSPROGS=y
- BR2_PACKAGE_UTIL_LINUX_LIBUUID=y
- """.format(infra.filepath(copy_script),
- infra.filepath(sample_script))
- timeout = 60
- def login(self):
- img = os.path.join(self.builddir, "images", "rootfs.ext4")
- self.emulator.boot(arch="armv7",
- kernel="builtin",
- kernel_cmdline=["root=/dev/mmcblk0",
- "rootfstype=ext4"],
- options=["-drive", "file={},if=sd,format=raw".format(img)])
- self.emulator.login()
- def test_run(self):
- self.login()
- cmd = "/root/{}".format(os.path.basename(self.sample_script))
- self.assertRunOk(cmd, timeout=20)
- class TestPy3BmapTools(TestBmapTools):
- __test__ = True
- config = TestBmapTools.config + \
- """
- BR2_PACKAGE_PYTHON3=y
- """
- class TestHostBmapTools(BRTest):
- config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
- """
- BR2_PACKAGE_HOST_BMAP_TOOLS=y
- # BR2_TARGET_ROOTFS_TAR is not set
- BR2_TARGET_ROOTFS_EXT2=y
- """
- def test_run(self):
- bmap_x = os.path.join(self.b.builddir, "host", "bin", "bmaptool")
- src_f = os.path.join(self.b.builddir, "images", "rootfs.ext2")
- dst_f = os.path.join(self.b.builddir, "images", "rootfs.ext2.copy")
- map_f = os.path.join(self.b.builddir, "images", "rootfs.ext2.bmap")
- ret = subprocess.call([bmap_x, "create", "-o", map_f, src_f],
- stdout=self.b.logfile,
- stderr=self.b.logfile)
- self.assertEqual(ret, 0)
- ret = subprocess.call([bmap_x, "copy", src_f, dst_f],
- stdout=self.b.logfile,
- stderr=self.b.logfile)
- self.assertEqual(ret, 0)
- with open(src_f, 'rb') as f:
- src = f.read()
- with open(dst_f, 'rb') as f:
- dst = f.read()
- self.assertEqual(src, dst)
|