aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2019-03-29 10:25:08 +0100
committerGerd Hoffmann <kraxel@redhat.com>2019-03-29 10:25:08 +0100
commit9ab4f60f575da52d14b9b84e3ba811b58be33276 (patch)
tree4ea817f8dc1d758997ddfa185da96a9eff51d192
parentb208373dd8ba37d6bdbb6e9e9d979815bdd277a2 (diff)
downloaddrminfo-9ab4f60f575da52d14b9b84e3ba811b58be33276.tar.gz
tests: screenshot tweaks
-rw-r--r--tests/basic.py41
-rw-r--r--tests/drminfo/__init__.py16
2 files changed, 48 insertions, 9 deletions
diff --git a/tests/basic.py b/tests/basic.py
index 96e61c2..5ba64dc 100644
--- a/tests/basic.py
+++ b/tests/basic.py
@@ -18,30 +18,59 @@ class BaseDRM(TestDRM):
:avocado: tags=x86_64
"""
+ checksums = {
+ 'XR24' : '661a70b8dca5436443ce09014e6c326c',
+ 'RG16' : '0dcbe8573e0bf44bb7363cd22639f3b9',
+ }
+
def run_one_test(self, vga):
+ modes = [
+ "800x600",
+ "1024x768",
+ "1280x800",
+ "1280x1024",
+ "1920x1080",
+ ]
self.boot_gfx_vm(vga);
self.console_prepare();
self.console_run('drminfo -a')
- txt = self.console_wait('---root---')
- self.write_text(vga, "drminfo", txt)
+ 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---',
- 'drmtest error (%s)' % format)
- self.screen_dump(vga, "drm-%s" % format)
+ '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");
+
if vga == 'virtio-vga':
self.console_run('virtiotest -i')
self.console_wait('---root---')
@@ -52,8 +81,8 @@ class BaseDRM(TestDRM):
self.console_wait('---root---')
self.console_run('fbinfo')
- txt = self.console_wait('---root---')
- self.write_text(vga, "fbinfo", txt)
+ 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')
diff --git a/tests/drminfo/__init__.py b/tests/drminfo/__init__.py
index d985314..d92d969 100644
--- a/tests/drminfo/__init__.py
+++ b/tests/drminfo/__init__.py
@@ -144,14 +144,24 @@ class TestDRM(avocado.Test):
output += msg
return output
- def screen_dump(self, vga, name):
+ def screen_dump(self, vga, name, expected = None):
if vga == 'qxl-vga':
self.vm.qmp('screendump', filename = '/dev/null');
time.sleep(0.1)
- outfile = '%s/%s-%s.ppm' % (self.outputdir, name, vga)
- self.vm.qmp('screendump', filename = outfile);
+ out_ppm = '%s/%s-%s.ppm' % (self.outputdir, name, vga)
+ out_jpg = '%s/%s-%s.jpg' % (self.outputdir, name, vga)
+ self.vm.qmp('screendump', filename = out_ppm);
self.wconsole.write('\n')
self.wconsole.flush()
+ checksum = run("md5sum %s" % out_ppm).stdout.decode().split()[0]
+ self.log.debug("checksum: %s" % checksum)
+ if not expected is None:
+ self.log.debug("expected: %s" % expected)
+ if checksum != expected:
+ self.warn("checksum mismatch")
+ if os.path.isfile("/usr/bin/convert"):
+ run("/usr/bin/convert %s %s" % (out_ppm, out_jpg))
+ os.remove(out_ppm)
def write_text(self, vga, name, content):
outfile = '%s/%s-%s.txt' % (self.outputdir, name, vga)