summaryrefslogtreecommitdiff
path: root/tests/vmtests/test_uefi_basic.py
blob: 1eeae61d83836d907df88400029eda8cf31915ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# This file is part of curtin. See LICENSE file for copyright and license info.

from . import (VMBaseClass)
from .releases import base_vm_classes as relbase
from .releases import centos_base_vm_classes as centos_relbase

import textwrap


class TestBasicAbs(VMBaseClass):
    interactive = False
    test_type = 'storage'
    arch_skip = ["ppc64el", "s390x"]
    conf_file = "examples/tests/uefi_basic.yaml"
    extra_disks = ['4G']
    uefi = True
    disk_to_check = [('main_disk', 1), ('main_disk', 2)]
    extra_collect_scripts = [textwrap.dedent("""
        cd OUTPUT_COLLECT_D
        test -d /sys/firmware/efi ; echo $? >is_efi
        cp /sys/class/block/vda/queue/logical_block_size vda_lbs
        cp /sys/class/block/vda/queue/physical_block_size vda_pbs
        blockdev --getsz /dev/vda | cat >vda_blockdev_getsz
        blockdev --getss /dev/vda | cat >vda_blockdev_getss
        blockdev --getpbsz /dev/vda | cat >vda_blockdev_getpbsz
        blockdev --getbsz /dev/vda | cat >vda_blockdev_getbsz

        exit 0
        """)]

    def test_is_efi(self):
        self.output_files_exist(["is_efi"])
        efi_lines = self.load_collect_file("is_efi").strip().split('\n')
        self.assertEqual(['0'], efi_lines)

    def test_disk_block_sizes(self):
        """ Test disk logical and physical block size are match
            the class block size.
        """
        blocksize_files = ['vda_' + bs for bs in ['lbs', 'pbs']]
        self.output_files_exist(blocksize_files)
        for bs_file in blocksize_files:
            size = int(self.load_collect_file(bs_file))
            self.assertEqual(self.disk_block_size, size)

    def test_disk_block_size_with_blockdev(self):
        """ validate maas setting
        --getsz                   get size in 512-byte sectors
        --getss                   get logical block (sector) size
        --getpbsz                 get physical block (sector) size
        --getbsz                  get blocksize
        """
        bdev_files = ['vda_blockdev_' + sc for sc in ['getss', 'getpbsz']]
        self.output_files_exist(bdev_files)
        for sc_file in bdev_files:
            size = int(self.load_collect_file(sc_file))
            self.assertEqual(self.disk_block_size, size)


class Centos70UefiTestBasic(centos_relbase.centos70_xenial, TestBasicAbs):
    __test__ = True


class PreciseUefiTestBasic(relbase.precise, TestBasicAbs):
    __test__ = False

    def test_ptable(self):
        print("test_ptable does not work for Precise")

    def test_dname(self):
        print("test_dname does not work for Precise")


class PreciseHWETUefiTestBasic(relbase.precise_hwe_t, PreciseUefiTestBasic):
    __test__ = False


class TrustyHWEXUefiTestBasic(relbase.trusty_hwe_x, TestBasicAbs):
    supported_releases = ['trusty']  # avoid unsupported release skiptest
    __test__ = False


class XenialGAUefiTestBasic(relbase.xenial_ga, TestBasicAbs):
    __test__ = True


class XenialHWEUefiTestBasic(relbase.xenial_hwe, TestBasicAbs):
    __test__ = True


class XenialEdgeUefiTestBasic(relbase.xenial_edge, TestBasicAbs):
    __test__ = True


class BionicUefiTestBasic(relbase.bionic, TestBasicAbs):
    __test__ = True


class FocalUefiTestBasic(relbase.focal, TestBasicAbs):
    __test__ = True


class JammyUefiTestBasic(relbase.jammy, TestBasicAbs):
    __test__ = True


class ManticUefiTestBasic(relbase.mantic, TestBasicAbs):
    __test__ = True


class Centos70UefiTestBasic4k(centos_relbase.centos70_xenial, TestBasicAbs):
    __test__ = True
    disk_block_size = 4096


class XenialGAUefiTestBasic4k(relbase.xenial_ga, TestBasicAbs):
    __test__ = True
    disk_block_size = 4096


class BionicUefiTestBasic4k(relbase.bionic, TestBasicAbs):
    __test__ = True
    disk_block_size = 4096


class FocalUefiTestBasic4k(relbase.focal, TestBasicAbs):
    __test__ = True
    disk_block_size = 4096


class JammyUefiTestBasic4k(relbase.jammy, TestBasicAbs):
    __test__ = True
    disk_block_size = 4096


class ManticUefiTestBasic4k(relbase.mantic, TestBasicAbs):
    __test__ = True
    disk_block_size = 4096


# vi: ts=4 expandtab syntax=python