#!/usr/bin/env python3
#
# Functional test that boots a Linux kernel on an versatile express machine
# and checks the console
#
# SPDX-License-Identifier: GPL-2.0-or-later

from qemu_test import LinuxKernelTest, Asset
from qemu_test.utils import archive_extract

class VExpressTest(LinuxKernelTest):

    ASSET_DAY16 = Asset(
        'https://www.qemu-advent-calendar.org/2018/download/day16.tar.xz',
        '63311adb2d4c4e7a73214a86d29988add87266a909719c56acfadd026b4110a7')

    def test_arm_vexpressa9(self):
        self.set_machine('vexpress-a9')
        file_path = self.ASSET_DAY16.fetch()
        archive_extract(file_path, self.workdir)
        self.launch_kernel(self.workdir + '/day16/winter.zImage',
                           dtb=self.workdir + '/day16/vexpress-v2p-ca9.dtb',
                           wait_for='QEMU advent calendar')

if __name__ == '__main__':
    LinuxKernelTest.main()
