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
|
#
# basic qemu display device tests
#
# stdlib
import os
# avocado
import avocado
# my bits
from drminfo import TestDRM
class BaseDRM(TestDRM):
"""
basic qemu display device tests
:avocado: tags=x86_64
"""
checksums = {
'AR24' : 'adf315fe78e8f7e2947d65158545b4d3',
'XR24' : '661a70b8dca5436443ce09014e6c326c',
'BX24' : '0ab929a5c0ccd0123c6a64fe6fdcc24f',
'RG16' : '0dcbe8573e0bf44bb7363cd22639f3b9',
}
def common_tests(self, vga, display = None):
modes = [
"800x600",
"1024x768",
"1280x800",
"1280x1024",
"1920x1080",
]
self.boot_gfx_vm(vga, display);
self.console_prepare();
self.console_run('drminfo -a')
drminfo = self.console_wait('---root---')
self.write_text(vga, "drminfo", drminfo)
self.console_run('drminfo -F')
formats = self.console_wait('---root---')
fcount = 0;
for format in formats.split():
expected = None
if format in self.checksums:
expected = self.checksums[format]
self.console_run('drmtest -a -s 10 -m 640x480 -f %s' % format)
self.console_wait('---ok---', '---root---',
'drm format error (%s)' % format)
self.screen_dump(vga, "format-%s" % format, expected)
self.console_wait('---root---')
fcount += 1;
if fcount == 0:
self.fail("no drm formats");
mcount = 0
for mode in modes:
if drminfo.find("mode: %s" % mode) < 0:
continue
self.console_run('drmtest -a -s 10 -m %s' % mode)
self.console_wait('---ok---', '---root---',
'drm mode error (%s)' % mode)
self.screen_dump(vga, "mode-%s" % mode)
self.console_wait('---root---')
mcount += 1;
if mcount == 0:
self.fail("no drm modes");
self.console_run('fbinfo')
fbinfo = self.console_wait('---root---')
self.write_text(vga, "fbinfo", fbinfo)
self.console_run('fbtest -a -s 10')
self.console_wait('---ok---', '---root---', 'fbtest error')
self.screen_dump(vga, 'fbdev')
self.console_wait('---root---')
def virtio_tests(self, vga):
self.console_run('virtiotest -i')
virtinfo = self.console_wait('---root---')
self.write_text(vga, "virtio", virtinfo)
self.console_run('virtiotest -a -s 10')
self.console_wait('---ok---', '---root---', 'virtiotest error')
self.screen_dump(vga, 'virtio')
self.console_wait('---root---')
@avocado.skipUnless(os.path.exists('/usr/bin/dracut'), "no dracut")
@avocado.skipUnless(os.path.exists('/usr/bin/drminfo'), "no drminfo")
@avocado.skipUnless(os.path.exists('/usr/bin/edid-decode'), "no edid-decode")
def setUp(self):
TestDRM.setUp(self);
if not os.path.isfile(self.initrd):
self.prepare_kernel_initrd()
def test_stdvga(self):
self.common_tests('VGA')
def test_cirrus(self):
self.common_tests('cirrus-vga')
def test_qxl_vga(self):
self.common_tests('qxl-vga')
def test_qxl(self):
self.common_tests('qxl')
def test_virtio_vga(self):
self.common_tests('virtio-vga')
self.virtio_tests('virtio-vga')
def test_virtio_gpu(self):
self.common_tests('virtio-gpu-pci')
self.virtio_tests('virtio-gpu-pci')
def test_virgl(self):
self.common_tests('virtio-vga', 'egl-headless')
self.virtio_tests('virtio-vga')
|