diff options
Diffstat (limited to 'support/testing/tests/fs/test_iso9660.py')
-rw-r--r-- | support/testing/tests/fs/test_iso9660.py | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/support/testing/tests/fs/test_iso9660.py b/support/testing/tests/fs/test_iso9660.py new file mode 100644 index 0000000000..eec6e89d69 --- /dev/null +++ b/support/testing/tests/fs/test_iso9660.py @@ -0,0 +1,162 @@ +import os + +import infra.basetest + +BASIC_CONFIG = \ +""" +BR2_x86_pentium4=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-i386-pentium4-full-2015.05-496-g85945aa.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_2=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.0" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="{}" +# BR2_TARGET_ROOTFS_TAR is not set +""".format(infra.filepath("conf/minimal-x86-qemu-kernel.config")) + +def test_mount_internal_external(emulator, builddir, internal=True): + img = os.path.join(builddir, "images", "rootfs.iso9660") + emulator.boot(arch="i386", options=["-cdrom", img]) + emulator.login() + + if internal: + cmd = "mount | grep 'rootfs on / type rootfs'" + else: + cmd = "mount | grep '/dev/root on / type iso9660'" + + _, exit_code = emulator.run(cmd) + return exit_code + +def test_touch_file(emulator): + _, exit_code = emulator.run("touch test") + return exit_code + +# +# Grub 2 +# + +class TestIso9660Grub2External(infra.basetest.BRTest): + config = BASIC_CONFIG + \ +""" +BR2_TARGET_ROOTFS_ISO9660=y +# BR2_TARGET_ROOTFS_ISO9660_INITRD is not set +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_BOOT_PARTITION="cd" +BR2_TARGET_GRUB2_BUILTIN_MODULES="boot linux ext2 fat part_msdos part_gpt normal biosdisk iso9660" +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" +""".format(infra.filepath("conf/grub2.cfg")) + + def test_run(self): + exit_code = test_mount_internal_external(self.emulator, + self.builddir, internal=False) + self.assertEqual(exit_code, 0) + + exit_code = test_touch_file(self.emulator) + self.assertEqual(exit_code, 1) + +class TestIso9660Grub2Internal(infra.basetest.BRTest): + config = BASIC_CONFIG + \ +""" +BR2_TARGET_ROOTFS_ISO9660=y +BR2_TARGET_ROOTFS_ISO9660_INITRD=y +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_BOOT_PARTITION="cd" +BR2_TARGET_GRUB2_BUILTIN_MODULES="boot linux ext2 fat part_msdos part_gpt normal biosdisk iso9660" +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" +""".format(infra.filepath("conf/grub2.cfg")) + + def test_run(self): + exit_code = test_mount_internal_external(self.emulator, + self.builddir, internal=True) + self.assertEqual(exit_code, 0) + + exit_code = test_touch_file(self.emulator) + self.assertEqual(exit_code, 0) + +# +# Grub +# + +class TestIso9660GrubExternal(infra.basetest.BRTest): + config = BASIC_CONFIG + \ +""" +BR2_TARGET_ROOTFS_ISO9660=y +# BR2_TARGET_ROOTFS_ISO9660_INITRD is not set +BR2_TARGET_GRUB=y +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" +""".format(infra.filepath("conf/grub-menu.lst")) + + def test_run(self): + exit_code = test_mount_internal_external(self.emulator, + self.builddir, internal=False) + self.assertEqual(exit_code, 0) + + exit_code = test_touch_file(self.emulator) + self.assertEqual(exit_code, 1) + +class TestIso9660GrubInternal(infra.basetest.BRTest): + config = BASIC_CONFIG + \ +""" +BR2_TARGET_ROOTFS_ISO9660=y +BR2_TARGET_GRUB=y +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" +""".format(infra.filepath("conf/grub-menu.lst")) + + def test_run(self): + exit_code = test_mount_internal_external(self.emulator, + self.builddir, internal=True) + self.assertEqual(exit_code, 0) + + exit_code = test_touch_file(self.emulator) + self.assertEqual(exit_code, 0) + +# +# Syslinux +# + +class TestIso9660SyslinuxExternal(infra.basetest.BRTest): + config = BASIC_CONFIG + \ +""" +BR2_TARGET_ROOTFS_ISO9660=y +# BR2_TARGET_ROOTFS_ISO9660_INITRD is not set +BR2_TARGET_ROOTFS_ISO9660_HYBRID=y +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" +BR2_TARGET_SYSLINUX=y +""".format(infra.filepath("conf/isolinux.cfg")) + + def test_run(self): + exit_code = test_mount_internal_external(self.emulator, + self.builddir, internal=False) + self.assertEqual(exit_code, 0) + + exit_code = test_touch_file(self.emulator) + self.assertEqual(exit_code, 1) + +class TestIso9660SyslinuxInternal(infra.basetest.BRTest): + config = BASIC_CONFIG + \ +""" +BR2_TARGET_ROOTFS_ISO9660=y +BR2_TARGET_ROOTFS_ISO9660_INITRD=y +BR2_TARGET_ROOTFS_ISO9660_HYBRID=y +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}" +BR2_TARGET_SYSLINUX=y +""".format(infra.filepath("conf/isolinux.cfg")) + + def test_run(self): + exit_code = test_mount_internal_external(self.emulator, + self.builddir, internal=True) + self.assertEqual(exit_code, 0) + + exit_code = test_touch_file(self.emulator) + self.assertEqual(exit_code, 0) |