1*e3fc99b1SThomas Huth#!/usr/bin/env python3 2*e3fc99b1SThomas Huth# 3*e3fc99b1SThomas Huth# Functional test that boots the canon-a1100 machine with firmware 4*e3fc99b1SThomas Huth# 5*e3fc99b1SThomas Huth# Copyright (c) 2020 Red Hat, Inc. 6*e3fc99b1SThomas Huth# 7*e3fc99b1SThomas Huth# Author: 8*e3fc99b1SThomas Huth# Thomas Huth <thuth@redhat.com> 9*e3fc99b1SThomas Huth# 10*e3fc99b1SThomas Huth# This work is licensed under the terms of the GNU GPL, version 2 or 11*e3fc99b1SThomas Huth# later. See the COPYING file in the top-level directory. 12*e3fc99b1SThomas Huth 13*e3fc99b1SThomas Huthfrom qemu_test import QemuSystemTest, Asset 14*e3fc99b1SThomas Huthfrom qemu_test import wait_for_console_pattern 15*e3fc99b1SThomas Huthfrom qemu_test.utils import archive_extract 16*e3fc99b1SThomas Huth 17*e3fc99b1SThomas Huthclass CanonA1100Machine(QemuSystemTest): 18*e3fc99b1SThomas Huth """Boots the barebox firmware and checks that the console is operational""" 19*e3fc99b1SThomas Huth 20*e3fc99b1SThomas Huth timeout = 90 21*e3fc99b1SThomas Huth 22*e3fc99b1SThomas Huth ASSET_BIOS = Asset(('https://qemu-advcal.gitlab.io' 23*e3fc99b1SThomas Huth '/qac-best-of-multiarch/download/day18.tar.xz'), 24*e3fc99b1SThomas Huth '28e71874ce985be66b7fd1345ed88cb2523b982f899c8d2900d6353054a1be49') 25*e3fc99b1SThomas Huth 26*e3fc99b1SThomas Huth def test_arm_canona1100(self): 27*e3fc99b1SThomas Huth self.set_machine('canon-a1100') 28*e3fc99b1SThomas Huth 29*e3fc99b1SThomas Huth file_path = self.ASSET_BIOS.fetch() 30*e3fc99b1SThomas Huth archive_extract(file_path, dest_dir=self.workdir, 31*e3fc99b1SThomas Huth member="day18/barebox.canon-a1100.bin") 32*e3fc99b1SThomas Huth self.vm.set_console() 33*e3fc99b1SThomas Huth self.vm.add_args('-bios', 34*e3fc99b1SThomas Huth self.workdir + '/day18/barebox.canon-a1100.bin') 35*e3fc99b1SThomas Huth self.vm.launch() 36*e3fc99b1SThomas Huth wait_for_console_pattern(self, 'running /env/bin/init') 37*e3fc99b1SThomas Huth 38*e3fc99b1SThomas Huthif __name__ == '__main__': 39*e3fc99b1SThomas Huth QemuSystemTest.main() 40