1#!/usr/bin/env python3
2#
3# Functional test that boots known good tuxboot images the same way
4# that tuxrun (www.tuxrun.org) does. This tool is used by things like
5# the LKFT project to run regression tests on kernels.
6#
7# Copyright (c) 2023 Linaro Ltd.
8#
9# Author:
10#  Alex Bennée <alex.bennee@linaro.org>
11#
12# SPDX-License-Identifier: GPL-2.0-or-later
13
14from qemu_test import Asset
15from qemu_test.tuxruntest import TuxRunBaselineTest
16
17class TuxRunRiscV64Test(TuxRunBaselineTest):
18
19    ASSET_RISCV64_KERNEL = Asset(
20        'https://storage.tuxboot.com/20230331/riscv64/Image',
21        'cd634badc65e52fb63465ec99e309c0de0369f0841b7d9486f9729e119bac25e')
22    ASSET_RISCV64_ROOTFS = Asset(
23        'https://storage.tuxboot.com/20230331/riscv64/rootfs.ext4.zst',
24        'b18e3a3bdf27be03da0b285e84cb71bf09eca071c3a087b42884b6982ed679eb')
25
26    ASSET_RISCV32_KERNEL = Asset(
27        'https://storage.tuxboot.com/20230331/riscv32/Image',
28        '89599407d7334de629a40e7ad6503c73670359eb5f5ae9d686353a3d6deccbd5')
29    ASSET_RISCV32_ROOTFS = Asset(
30        'https://storage.tuxboot.com/20230331/riscv32/rootfs.ext4.zst',
31        '7168d296d0283238ea73cd5a775b3dd608e55e04c7b92b76ecce31bb13108cba')
32
33    def test_riscv64(self):
34        self.set_machine('virt')
35        self.common_tuxrun(kernel_asset=self.ASSET_RISCV64_KERNEL,
36                           rootfs_asset=self.ASSET_RISCV64_ROOTFS)
37
38    def test_riscv64_maxcpu(self):
39        self.set_machine('virt')
40        self.cpu='max'
41        self.common_tuxrun(kernel_asset=self.ASSET_RISCV64_KERNEL,
42                           rootfs_asset=self.ASSET_RISCV64_ROOTFS)
43
44    def test_riscv64_rv32(self):
45        self.set_machine('virt')
46        self.cpu='rv32'
47        self.common_tuxrun(kernel_asset=self.ASSET_RISCV32_KERNEL,
48                           rootfs_asset=self.ASSET_RISCV32_ROOTFS)
49
50if __name__ == '__main__':
51    TuxRunBaselineTest.main()
52