import infra.basetest import os class TestHostPythonPyfatfs(infra.basetest.BRHostPkgTest): hostpkgs = ["host-python-pyfatfs", "host-genimage", "host-dosfstools", "host-mtools"] config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + infra.basetest.MINIMAL_CONFIG + \ """ BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_MTOOLS=y """ genimage_cfg = """ image test.vfat { vfat { files = { "test.txt" } } size = 8M }""" def test_run(self): os.makedirs(os.path.join(self.builddir, "genimage-input"), exist_ok=True) with open(os.path.join(self.builddir, "genimage-input", "test.txt"), "w") as f: f.write("Hello World!") with open(os.path.join(self.builddir, "genimage.cfg"), "w") as f: f.write(self.genimage_cfg) os.makedirs(os.path.join(self.builddir, "genimage-tmp"), exist_ok=True) os.makedirs(os.path.join(self.builddir, "genimage-root"), exist_ok=True) cmd = ["host/bin/genimage", "--config", os.path.join(self.builddir, "genimage.cfg"), "--outputpath", self.builddir, "--inputpath", os.path.join(self.builddir, "genimage-input"), "--tmppath", os.path.join(self.builddir, "genimage-tmp"), "--rootpath", os.path.join(self.builddir, "genimage-root"), "--mkdosfs", os.path.join(self.builddir, "host", "sbin", "mkdosfs"), "--mcopy", os.path.join(self.builddir, "host", "bin", "mcopy") ] infra.run_cmd_on_host(self.builddir, cmd) cmd = ["host/bin/python3", "-c", "import fs; fatfs = fs.open_fs('fat://test.vfat'); assert(fatfs.listdir('/') == ['TEST.TXT'])"] infra.run_cmd_on_host(self.builddir, cmd)