def test_format(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV3()) # Need to call also this one! metadata.add_v2_config() metadata.add_v3_config(bootloaders=None) expected_out = "format: '3.0'\nname: ahwpack\nversion: '4'\n" "architecture: armel\n" self.assertEqual(expected_out, str(metadata))
def test_str_with_kernel_file(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(vmlinuz="boot/vmlinuz-3.0.0-1002-linaro-omap") expected_out = ( "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "KERNEL_FILE=boot/vmlinuz-3.0.0-1002-linaro-omap\n" ) self.assertEqual(expected_out, str(metadata))
def test_str_with_initrd_file(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(initrd="boot/initrd.img-3.0.0-1002-linaro-omap") expected_out = ( "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "INITRD_FILE=boot/initrd.img-3.0.0-1002-linaro-omap\n" ) self.assertEqual(expected_out, str(metadata))
def test_str_with_initrd_file(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(initrd='boot/initrd.img-3.0.0-1002-linaro-omap') expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "INITRD_FILE=boot/initrd.img-3.0.0-1002-linaro-omap\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_kernel_file(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(vmlinuz='boot/vmlinuz-3.0.0-1002-linaro-omap') expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "KERNEL_FILE=boot/vmlinuz-3.0.0-1002-linaro-omap\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_loader_min_size(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(loader_min_size='1') expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "LOADER_MIN_SIZE=1\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_mmc_id(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(mmc_id='1') expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "MMC_ID=1\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_partition_layout(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(partition_layout='bootfs_rootfs') expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "PARTITION_LAYOUT=bootfs_rootfs\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_wireless_interfaces(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(wireless_interfaces=['wlan0', 'wl0']) expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "WIRELESS_INTERFACES=wlan0 wl0\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_dtb_addr(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(dtb_addr='0x80000000') expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "DTB_ADDR=0x80000000\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_boot_script(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(boot_script='boot.scr') expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "BOOT_SCRIPT=boot.scr\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_extra_serial_options(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(extra_serial_options="console=tty0 console=ttyO2,115200n8") expected_out = ( "NAME=ahwpack\nVERSION=4\n" "ARCHITECTURE=armel\nEXTRA_SERIAL_OPTIONS=" "console=tty0 console=ttyO2,115200n8\n" ) self.assertEqual(expected_out, str(metadata))
def test_str_with_serial_tty(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(serial_tty='ttyO2') expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "SERIAL_TTY=ttyO2\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_dtb_file(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(dtb_file="boot/dt-3.0.0-1002-linaro-omap/omap4-panda.dtb") expected_out = ( "NAME=ahwpack\nVERSION=4\n" "ARCHITECTURE=armel\nDTB_FILE=" "boot/dt-3.0.0-1002-linaro-omap/omap4-panda.dtb\n" ) self.assertEqual(expected_out, str(metadata))
def test_section_wired(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV3()) wired_list = ["eth0", "usb0"] # Need to call also this one! metadata.add_v2_config(wired_interfaces=wired_list) metadata.add_v3_config(bootloaders=None) expected_out = ( "format: '3.0'\nname: ahwpack\nversion: '4'\n" "architecture: armel\nwired_interfaces: eth0 usb0\n" ) self.assertEqual(expected_out, str(metadata))
def test_str_with_dtb_file(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config( dtb_file='boot/dt-3.0.0-1002-linaro-omap/omap4-panda.dtb') expected_out = ("NAME=ahwpack\nVERSION=4\n" "ARCHITECTURE=armel\nDTB_FILE=" "boot/dt-3.0.0-1002-linaro-omap/omap4-panda.dtb\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_extra_serial_options(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config( extra_serial_options='console=tty0 console=ttyO2,115200n8') expected_out = ("NAME=ahwpack\nVERSION=4\n" "ARCHITECTURE=armel\nEXTRA_SERIAL_OPTIONS=" "console=tty0 console=ttyO2,115200n8\n") self.assertEqual(expected_out, str(metadata))
def test_section_extra_serial_options(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV3()) options = ["option1", "option2,option3"] # Need to call also this one! metadata.add_v2_config(extra_serial_options=options) metadata.add_v3_config(bootloaders=None) expected_out = ( "format: '3.0'\nname: ahwpack\nversion: '4'\n" "architecture: armel\nextra_serial_options: option1 " "option2,option3\n" ) self.assertEqual(expected_out, str(metadata))
def test_section_bootloaders(self): bootloaders = {"u_boot": {"file": "a_file"}} metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV3()) # Need to call also this one! metadata.add_v2_config() metadata.add_v3_config(bootloaders=bootloaders) expected_out = ( "format: '3.0'\nname: ahwpack\nversion: '4'\n" "architecture: armel\nbootloaders:\n u_boot:\n" " file: a_file\n" ) self.assertEqual(expected_out, str(metadata))
def test_str_with_extra_boot_options(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(extra_boot_options=( 'earlyprintk fixrtc nocompcache vram=48M omapfb.vram=0:24M ' 'mem=456M@0x80000000 mem=512M@0xA0000000')) expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "EXTRA_BOOT_OPTIONS=earlyprintk fixrtc nocompcache " "vram=48M omapfb.vram=0:24M " "mem=456M@0x80000000 mem=512M@0xA0000000\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_extra_boot_options(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config( extra_boot_options=( "earlyprintk fixrtc nocompcache vram=48M omapfb.vram=0:24M " "mem=456M@0x80000000 mem=512M@0xA0000000" ) ) expected_out = ( "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "EXTRA_BOOT_OPTIONS=earlyprintk fixrtc nocompcache " "vram=48M omapfb.vram=0:24M " "mem=456M@0x80000000 mem=512M@0xA0000000\n" ) self.assertEqual(expected_out, str(metadata))
def test_str_with_maintainer(self): metadata = Metadata("ahwpack", "4", "armel", maintainer="Some Maintainer") expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "MAINTAINER=Some Maintainer\n") self.assertEqual(expected_out, str(metadata))
def test_creates_metadata_file(self): metadata = Metadata("ahwpack", "4", "armel", origin="linaro", maintainer="Some Maintainer", support="unsupported") hwpack = HardwarePack(metadata) tf = self.get_tarfile(hwpack) self.assertThat(tf, HardwarePackHasFile("metadata", content=str(metadata)))
def test_from_config(self): class Config: name = "foo" origin = "linaro" maintainer = "someone" support = "supported" format = HardwarePackFormatV1() config = Config() metadata = Metadata.from_config(config, "2.0", "i386") self.assertEqual(config.name, metadata.name) self.assertEqual(config.origin, metadata.origin) self.assertEqual(config.maintainer, metadata.maintainer) self.assertEqual(config.support, metadata.support) self.assertEqual("2.0", metadata.version) self.assertEqual("i386", metadata.architecture)
def test_format(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV3()) # Need to call also this one! metadata.add_v2_config() metadata.add_v3_config(bootloaders=None) expected_out = ("format: '3.0'\nname: ahwpack\nversion: '4'\n" "architecture: armel\n") self.assertEqual(expected_out, str(metadata))
def test_section_wired(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV3()) wired_list = ['eth0', 'usb0'] # Need to call also this one! metadata.add_v2_config(wired_interfaces=wired_list) metadata.add_v3_config(bootloaders=None) expected_out = ("format: '3.0'\nname: ahwpack\nversion: '4'\n" "architecture: armel\nwired_interfaces: eth0 usb0\n") self.assertEqual(expected_out, str(metadata))
def test_builds_a_hwpack(self): package_name = 'foo' available_package = DummyFetchedPackage(package_name, "1.1", architecture="armel") source = self.useFixture(AptSourceFixture([available_package])) config = self.useFixture( ConfigFileFixture( '[hwpack]\nname=ahwpack\npackages=%s\narchitectures=armel\n' '\n[ubuntu]\nsources-entry=%s\n' % (package_name, source.sources_entry))) stdout, stderr = self.run_script([config.filename, "1.0"]) metadata = Metadata("ahwpack", "1.0", "armel") self.assertThat( "hwpack_ahwpack_1.0_armel.tar.gz", IsHardwarePack(metadata, [available_package], {"ubuntu": source.sources_entry}, package_spec=package_name))
def test_section_bootloaders(self): bootloaders = {'u_boot': {'file': 'a_file'}} metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV3()) # Need to call also this one! metadata.add_v2_config() metadata.add_v3_config(bootloaders=bootloaders) expected_out = ("format: '3.0'\nname: ahwpack\nversion: '4'\n" "architecture: armel\nbootloaders:\n u_boot:\n" " file: a_file\n") self.assertEqual(expected_out, str(metadata))
def test_section_extra_serial_options(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV3()) options = ['option1', 'option2,option3'] # Need to call also this one! metadata.add_v2_config(extra_serial_options=options) metadata.add_v3_config(bootloaders=None) expected_out = ("format: '3.0'\nname: ahwpack\nversion: '4'\n" "architecture: armel\nextra_serial_options: option1 " "option2,option3\n") self.assertEqual(expected_out, str(metadata))
def makeMetaDataAndConfigFixture(self, packages, sources, hwpack_name="ahwpack", hwpack_version="1.0", architecture="armel", extra_config={}): config_text = ('[hwpack]\n' 'name=%s\n' 'packages=%s\n' 'architectures=%s\n' % (hwpack_name, ' '.join(packages), architecture)) for key, value in extra_config.iteritems(): config_text += '%s=%s\n' % (key, value) config_text += '\n' for source_id, source in sources.iteritems(): config_text += '\n' config_text += '[%s]\n' % source_id config_text += 'sources-entry=%s\n' % source config = self.useFixture(ConfigFileFixture(config_text)) return Metadata(hwpack_name, hwpack_version, architecture), config
def test_builds_a_v3_hwpack_from_config_with_2_bootloaders(self): config_v3 = ("format: 3.0\n" "name: ahwpack\n" "architectures: armel\n" "serial_tty: ttySAC1\n" "partition_layout:\n" " - bootfs_rootfs\n" "boot_script: boot.scr\n" "extra_serial_options:\n" " - console=tty0\n" " - console=ttyO2,115200n8\n" "mmc_id: 0:1\n" "kernel_file: boot/vmlinuz-*-linaro-omap\n" "initrd_file: boot/initrd.img-*-linaro-omap\n" "dtb_file: boot/dt-*-linaro-omap/omap4-panda.dtb\n" "packages:\n" " - %s\n" " - %s\n") bootloader_config = (" package: %s\n" " in_boot_part: %s\n" " extra_boot_options:\n" " - earlyprintk\n" " - fixrtc\n" " - nocompcache\n" " - vram=48M\n" " - omapfb.vram=0:24M\n" " - mem=456M@0x80000000\n" " - mem=512M@0xA0000000\n") config_v3 += ("bootloaders:\n" " u_boot:\n" + bootloader_config + " u_boot_2:\n" + bootloader_config) config_v3 += ("sources:\n" " ubuntu: %s\n") package_names = ['foo', 'bar'] available_packages = [] for package_name in package_names: available_packages.append( DummyFetchedPackage(package_name, "1.1", architecture="armel")) source = self.useFixture(AptSourceFixture(available_packages)) config_v3 = config_v3 % (package_names[0], package_names[1], package_names[0], "True", package_names[1], "False", source.sources_entry) config_file_fixture = self.useFixture(ConfigFileFixture(config_v3)) self.run_script([config_file_fixture.filename, "1.0"]) # We now need a real config object to test against the configuration # in the hardware pack we have created. config = Config(StringIO(config_v3)) config.bootloader = "u_boot" metadata = Metadata.from_config(config, "1.0", "armel") self.assertThat( "hwpack_ahwpack_1.0_armel.tar.gz", IsHardwarePack(metadata, available_packages, {"ubuntu": source.sources_entry}, package_spec=",".join(package_names), format="3.0"))
def setUp(self): super(MetadataTests, self).setUp() self.metadata = Metadata("ahwpack", "3", "armel")
def test_default_maintainer_is_None(self): metadata = Metadata("ahwpack", "4", "armel") self.assertEqual(None, metadata.maintainer)
def test_origin(self): metadata = Metadata("ahwpack", "4", "armel", origin="linaro") self.assertEqual("linaro", metadata.origin)
def test_default_support_is_None(self): metadata = Metadata("ahwpack", "4", "armel") self.assertEqual(None, metadata.support)
def test_maintainer(self): metadata = Metadata("ahwpack", "4", "armel", maintainer="Some maintainer") self.assertEqual("Some maintainer", metadata.maintainer)
def test_str_with_origin(self): metadata = Metadata("ahwpack", "4", "armel", origin="linaro") expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "ORIGIN=linaro\n") self.assertEqual(expected_out, str(metadata))
def test_str_with_loader_min_size(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(loader_min_size="1") expected_out = "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "LOADER_MIN_SIZE=1\n" self.assertEqual(expected_out, str(metadata))
def test_str_with_boot_script(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(boot_script="boot.scr") expected_out = "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "BOOT_SCRIPT=boot.scr\n" self.assertEqual(expected_out, str(metadata))
def test_str_with_serial_tty(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(serial_tty="ttyO2") expected_out = "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "SERIAL_TTY=ttyO2\n" self.assertEqual(expected_out, str(metadata))
def test_str_with_dtb_addr(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(dtb_addr="0x80000000") expected_out = "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "DTB_ADDR=0x80000000\n" self.assertEqual(expected_out, str(metadata))
def test_str_with_wireless_interfaces(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(wireless_interfaces=["wlan0", "wl0"]) expected_out = "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "WIRELESS_INTERFACES=wlan0 wl0\n" self.assertEqual(expected_out, str(metadata))
def test_str_with_partition_layout(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(partition_layout="bootfs_rootfs") expected_out = "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "PARTITION_LAYOUT=bootfs_rootfs\n" self.assertEqual(expected_out, str(metadata))
def test_builds_a_v3_hwpack_from_config_with_2_bootloaders(self): config_v3 = ("format: 3.0\n" "name: ahwpack\n" "architectures: armel\n" "serial_tty: ttySAC1\n" "partition_layout:\n" " - bootfs_rootfs\n" "boot_script: boot.scr\n" "extra_serial_options:\n" " - console=tty0\n" " - console=ttyO2,115200n8\n" "mmc_id: 0:1\n" "kernel_file: boot/vmlinuz-*-linaro-omap\n" "initrd_file: boot/initrd.img-*-linaro-omap\n" "dtb_file: boot/dt-*-linaro-omap/omap4-panda.dtb\n" "packages:\n" " - %s\n" " - %s\n") bootloader_config = (" package: %s\n" " in_boot_part: %s\n" " extra_boot_options:\n" " - earlyprintk\n" " - fixrtc\n" " - nocompcache\n" " - vram=48M\n" " - omapfb.vram=0:24M\n" " - mem=456M@0x80000000\n" " - mem=512M@0xA0000000\n") config_v3 += ("bootloaders:\n" " u_boot:\n" + bootloader_config + " u_boot_2:\n" + bootloader_config) config_v3 += ("sources:\n" " ubuntu: %s\n") package_names = ['foo', 'bar'] available_packages = [] for package_name in package_names: available_packages.append( DummyFetchedPackage(package_name, "1.1", architecture="armel")) source = self.useFixture(AptSourceFixture(available_packages)) config_v3 = config_v3 % (package_names[0], package_names[1], package_names[0], "True", package_names[1], "False", source.sources_entry) config_file_fixture = self.useFixture(ConfigFileFixture(config_v3)) self.run_script([config_file_fixture.filename, "1.0"]) # We now need a real config object to test against the configuration # in the hardware pack we have created. config = Config(StringIO(config_v3)) config.bootloader = "u_boot" metadata = Metadata.from_config(config, "1.0", "armel") self.assertThat( "hwpack_ahwpack_1.0_armel.tar.gz", IsHardwarePack( metadata, available_packages, {"ubuntu": source.sources_entry}, package_spec=",".join(package_names), format="3.0"))
def test_str(self): metadata = Metadata("ahwpack", "4", "armel") expected_out = ("NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n") self.assertEqual(expected_out, str(metadata))
def test_support(self): metadata = Metadata("ahwpack", "4", "armel", support="supported") self.assertEqual("supported", metadata.support)
def test_str_with_mmc_id(self): metadata = Metadata("ahwpack", "4", "armel", format=HardwarePackFormatV2()) metadata.add_v2_config(mmc_id="1") expected_out = "NAME=ahwpack\nVERSION=4\nARCHITECTURE=armel\n" "MMC_ID=1\n" self.assertEqual(expected_out, str(metadata))