2017-03-20 21:36:52 +01:00
|
|
|
import os
|
|
|
|
|
|
|
|
import infra.basetest
|
|
|
|
|
|
|
|
BASIC_CONFIG = \
|
2017-10-05 23:42:08 +02:00
|
|
|
"""
|
|
|
|
BR2_x86_pentium4=y
|
|
|
|
BR2_TOOLCHAIN_EXTERNAL=y
|
|
|
|
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
|
|
|
|
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
|
2017-10-21 19:21:45 +02:00
|
|
|
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-i386-pentium4-full-2017.05-1078-g95b1dae.tar.bz2"
|
|
|
|
BR2_TOOLCHAIN_EXTERNAL_GCC_6=y
|
2017-10-05 23:42:08 +02:00
|
|
|
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_2=y
|
|
|
|
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
|
|
|
|
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
|
|
|
|
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
|
2017-10-21 21:14:01 +02:00
|
|
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11"
|
2017-10-05 23:42:08 +02:00
|
|
|
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"))
|
2017-03-20 21:36:52 +01:00
|
|
|
|
2017-10-05 23:42:09 +02:00
|
|
|
|
2017-03-20 21:36:52 +01:00
|
|
|
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
|
|
|
|
|
2017-10-05 23:42:09 +02:00
|
|
|
|
2017-03-20 21:36:52 +01:00
|
|
|
def test_touch_file(emulator):
|
|
|
|
_, exit_code = emulator.run("touch test")
|
|
|
|
return exit_code
|
|
|
|
|
|
|
|
#
|
|
|
|
# Grub 2
|
2017-10-05 23:42:09 +02:00
|
|
|
|
2017-03-20 21:36:52 +01:00
|
|
|
|
|
|
|
class TestIso9660Grub2External(infra.basetest.BRTest):
|
|
|
|
config = BASIC_CONFIG + \
|
2017-10-05 23:42:08 +02:00
|
|
|
"""
|
|
|
|
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"))
|
2017-03-20 21:36:52 +01:00
|
|
|
|
|
|
|
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)
|
|
|
|
|
2017-10-05 23:42:09 +02:00
|
|
|
|
2017-12-20 22:27:43 +01:00
|
|
|
class TestIso9660Grub2ExternalCompress(infra.basetest.BRTest):
|
|
|
|
config = BASIC_CONFIG + \
|
|
|
|
"""
|
|
|
|
BR2_TARGET_ROOTFS_ISO9660=y
|
|
|
|
# BR2_TARGET_ROOTFS_ISO9660_INITRD is not set
|
|
|
|
BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION=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=False)
|
|
|
|
self.assertEqual(exit_code, 0)
|
|
|
|
|
|
|
|
exit_code = test_touch_file(self.emulator)
|
|
|
|
self.assertEqual(exit_code, 1)
|
|
|
|
|
|
|
|
|
2017-03-20 21:36:52 +01:00
|
|
|
class TestIso9660Grub2Internal(infra.basetest.BRTest):
|
|
|
|
config = BASIC_CONFIG + \
|
2017-10-05 23:42:08 +02:00
|
|
|
"""
|
|
|
|
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"))
|
2017-03-20 21:36:52 +01:00
|
|
|
|
|
|
|
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
|
2017-10-05 23:42:09 +02:00
|
|
|
|
2017-03-20 21:36:52 +01:00
|
|
|
|
|
|
|
class TestIso9660SyslinuxExternal(infra.basetest.BRTest):
|
|
|
|
config = BASIC_CONFIG + \
|
2017-10-05 23:42:08 +02:00
|
|
|
"""
|
|
|
|
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
|
2017-12-20 22:27:43 +01:00
|
|
|
""".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 TestIso9660SyslinuxExternalCompress(infra.basetest.BRTest):
|
|
|
|
config = BASIC_CONFIG + \
|
|
|
|
"""
|
|
|
|
BR2_TARGET_ROOTFS_ISO9660=y
|
|
|
|
# BR2_TARGET_ROOTFS_ISO9660_INITRD is not set
|
|
|
|
BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION=y
|
|
|
|
BR2_TARGET_ROOTFS_ISO9660_HYBRID=y
|
|
|
|
BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="{}"
|
|
|
|
BR2_TARGET_SYSLINUX=y
|
2017-10-05 23:42:08 +02:00
|
|
|
""".format(infra.filepath("conf/isolinux.cfg"))
|
2017-03-20 21:36:52 +01:00
|
|
|
|
|
|
|
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)
|
|
|
|
|
2017-10-05 23:42:09 +02:00
|
|
|
|
2017-03-20 21:36:52 +01:00
|
|
|
class TestIso9660SyslinuxInternal(infra.basetest.BRTest):
|
|
|
|
config = BASIC_CONFIG + \
|
2017-10-05 23:42:08 +02:00
|
|
|
"""
|
|
|
|
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"))
|
2017-03-20 21:36:52 +01:00
|
|
|
|
|
|
|
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)
|