diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2019-03-29 10:25:08 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2019-03-29 10:25:08 +0100 |
commit | 9ab4f60f575da52d14b9b84e3ba811b58be33276 (patch) | |
tree | 4ea817f8dc1d758997ddfa185da96a9eff51d192 | |
parent | b208373dd8ba37d6bdbb6e9e9d979815bdd277a2 (diff) | |
download | drminfo-9ab4f60f575da52d14b9b84e3ba811b58be33276.tar.gz |
tests: screenshot tweaks
-rw-r--r-- | tests/basic.py | 41 | ||||
-rw-r--r-- | tests/drminfo/__init__.py | 16 |
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) |