[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 13/13] tests/acceptance: console boot tests for quanta-gsj
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v6 13/13] tests/acceptance: console boot tests for quanta-gsj |
Date: |
Mon, 20 Jul 2020 11:49:18 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
On 7/20/20 10:22 AM, Joel Stanley wrote:
> On Fri, 17 Jul 2020 at 12:33, Cédric Le Goater <clg@kaod.org> wrote:
>>
>> On 7/17/20 8:02 AM, Havard Skinnemoen wrote:
>>> This adds two acceptance tests for the quanta-gsj machine.
>>>
>>> One test downloads a lightly patched openbmc flash image from github and
>>> verifies that it boots all the way to the login prompt.
>>>
>>> The other test downloads a kernel, initrd and dtb built from the same
>>> openbmc source and verifies that the kernel detects all CPUs and boots
>>> to the point where it can't find the root filesystem (because we have no
>>> flash image in this case).
>>>
>>> Signed-off-by: Havard Skinnemoen <hskinnemoen@google.com>
>>
>> It looks good but I am not sure it's a good idea to have tests
>> point to URLs like :
>>
>> https://github.com/hskinnemoen/openbmc/releases/download/20200711-gsj-qemu-0/obmc-phosphor-initramfs-gsj.cpio.xz
>>
>> Philippe, Peter, is that OK ?
FWIW I'm happier having something to test than anything.
If Havard destroys his repo, we can remove/move the test.
However ...
>>
>>
>> If so, Joel, Andrew, could we host FW images on the OpenBMC github ?
>> and do the same for Aspeed.
>
> Yeah, we can do that if it would be preferred.
... this is certainly better.
>
> Nice work on adding a test Havard. I have been meaning to do the same
> for the aspeed machines for a while.
>
>>
>> Thanks,
>>
>> C.
>>
>>> ---
>>> tests/acceptance/boot_linux_console.py | 65 ++++++++++++++++++++++++++
>>> 1 file changed, 65 insertions(+)
>>>
>>> diff --git a/tests/acceptance/boot_linux_console.py
>>> b/tests/acceptance/boot_linux_console.py
>>> index 73cc69c499..1d82fc7ff8 100644
>>> --- a/tests/acceptance/boot_linux_console.py
>>> +++ b/tests/acceptance/boot_linux_console.py
>>> @@ -569,6 +569,71 @@ class BootLinuxConsole(LinuxKernelTest):
>>> 'sda')
>>> # cubieboard's reboot is not functioning; omit reboot test.
>>>
>>> + def test_arm_quanta_gsj(self):
>>> + """
>>> + :avocado: tags=arch:arm
>>> + :avocado: tags=machine:quanta-gsj
>>> + """
>>> + # 25 MiB compressed, 32 MiB uncompressed.
>>> + image_url = (
>>> + 'https://github.com/hskinnemoen/openbmc/releases/download/'
>>> +
>>> '20200711-gsj-qemu-0/obmc-phosphor-image-gsj.static.mtd.gz')
>>> + image_hash = '14895e634923345cb5c8776037ff7876df96f6b1'
>>> + image_path_gz = self.fetch_asset(image_url, asset_hash=image_hash)
This path is in the Avocado assets cache.
>>> + image_name = os.path.splitext(os.path.basename(image_path_gz))[0]
You take the basename, so it is not in the Avocado assets cache
but in the local workdir, good. As this is a temporary file name,
we don't care much if the name matches. This works too (and the
reviewer doesn't have to wonder what is the path name):
image_name = "obmc.mtd"
I'm fine either ways, thanks for adding a pair of tests!
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>> + image_path = os.path.join(self.workdir, image_name)
>>> + archive.gzip_uncompress(image_path_gz, image_path)
>>> +
>>> + self.vm.set_console()
>>> + drive_args = 'file=' + image_path + ',if=mtd,bus=0,unit=0'
>>> + self.vm.add_args('-drive', drive_args)
>>> + self.vm.launch()
>>> +
>>> + self.wait_for_console_pattern('> BootBlock by Nuvoton')
>>> + self.wait_for_console_pattern('>Device: Poleg BMC NPCM730')
>>> + self.wait_for_console_pattern('>Skip DDR init.')
>>> + self.wait_for_console_pattern('U-Boot ')
>>> + self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
>>> + self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
>>> + self.wait_for_console_pattern('OpenBMC Project Reference Distro')
>>> + self.wait_for_console_pattern('gsj login:')
>>> +
>>> + def test_arm_quanta_gsj_initrd(self):
>>> + """
>>> + :avocado: tags=arch:arm
>>> + :avocado: tags=machine:quanta-gsj
>>> + """
>>> + initrd_url = (
>>> + 'https://github.com/hskinnemoen/openbmc/releases/download/'
>>> + '20200711-gsj-qemu-0/obmc-phosphor-initramfs-gsj.cpio.xz')
>>> + initrd_hash = '98fefe5d7e56727b1eb17d5c00311b1b5c945300'
>>> + initrd_path = self.fetch_asset(initrd_url, asset_hash=initrd_hash)
>>> + kernel_url = (
>>> + 'https://github.com/hskinnemoen/openbmc/releases/download/'
>>> + '20200711-gsj-qemu-0/uImage-gsj.bin')
>>> + kernel_hash = 'fa67b2f141d56d39b3c54305c0e8a899c99eb2c7'
>>> + kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
>>> + dtb_url = (
>>> + 'https://github.com/hskinnemoen/openbmc/releases/download/'
>>> + '20200711-gsj-qemu-0/nuvoton-npcm730-gsj.dtb')
>>> + dtb_hash = '18315f7006d7b688d8312d5c727eecd819aa36a4'
>>> + dtb_path = self.fetch_asset(dtb_url, asset_hash=dtb_hash)
>>> +
>>> + self.vm.set_console()
>>> + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
>>> + 'console=ttyS0,115200n8 '
>>> + 'earlycon=uart8250,mmio32,0xf0001000')
>>> + self.vm.add_args('-kernel', kernel_path,
>>> + '-initrd', initrd_path,
>>> + '-dtb', dtb_path,
>>> + '-append', kernel_command_line)
>>> + self.vm.launch()
>>> +
>>> + self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
>>> + self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
>>> + self.wait_for_console_pattern(
>>> + 'Give root password for system maintenance')
>>> +
>>> def test_arm_orangepi(self):
>>> """
>>> :avocado: tags=arch:arm
>>>
>>
>
- [PATCH v6 07/13] hw/arm: Load -bios image as a boot ROM for npcm7xx, (continued)
- [PATCH v6 07/13] hw/arm: Load -bios image as a boot ROM for npcm7xx, Havard Skinnemoen, 2020/07/17
- [PATCH v6 08/13] hw/nvram: NPCM7xx OTP device model, Havard Skinnemoen, 2020/07/17
- [PATCH v6 10/13] hw/ssi: NPCM7xx Flash Interface Unit device model, Havard Skinnemoen, 2020/07/17
- [PATCH v6 11/13] hw/arm: Wire up BMC boot flash for npcm750-evb and quanta-gsj, Havard Skinnemoen, 2020/07/17
- [PATCH v6 09/13] hw/mem: Stubbed out NPCM7xx Memory Controller model, Havard Skinnemoen, 2020/07/17
- [PATCH v6 12/13] docs/system: Add Nuvoton machine documentation, Havard Skinnemoen, 2020/07/17
- [PATCH v6 13/13] tests/acceptance: console boot tests for quanta-gsj, Havard Skinnemoen, 2020/07/17
- Re: [PATCH v6 00/13] Add Nuvoton NPCM730/NPCM750 SoCs and two BMC machines, Cédric Le Goater, 2020/07/17