diff --git a/.buildbot/kivy/Dockerfile b/.buildbot/kivy/Dockerfile index 58c2be08..94c0545f 100644 --- a/.buildbot/kivy/Dockerfile +++ b/.buildbot/kivy/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get install -yq \ build-essential libcap-dev libssl-dev \ libmtdev-dev libpq-dev \ python3-dev python3-pip python3-virtualenv \ - xvfb + xvfb ffmpeg RUN ln -sf /usr/bin/python3 /usr/bin/python diff --git a/tests-kivy.py b/tests-kivy.py index 92b10b86..a2d2130d 100644 --- a/tests-kivy.py +++ b/tests-kivy.py @@ -4,6 +4,10 @@ import random # noseq import sys import unittest +from os import environ, mkdir +from subprocess import Popen, TimeoutExpired +from time import sleep + def unittest_discover(): """Explicit test suite creation""" @@ -13,5 +17,27 @@ def unittest_discover(): if __name__ == "__main__": + with open("/proc/self/cgroup", "rt", encoding='ascii', errors='replace') as f: + in_docker = "docker" in f.read() + + if in_docker: + try: + mkdir("../out") + except FileExistsError: # flake8: noqa:F821 + pass + + ffmpeg = Popen([ # pylint: disable=consider-using-with + "ffmpeg", "-y", "-nostdin", "-f", "x11grab", "-video_size", "vga", + "-draw_mouse", "0", "-i", environ['DISPLAY'], + "-codec:v", "libvpx-vp9", "-lossless", "1", "-r", "30", + "../out/test.webm" + ]) + sleep(2) # let ffmpeg start result = unittest.TextTestRunner(verbosity=2).run(unittest_discover()) + if in_docker: + ffmpeg.terminate() + try: + ffmpeg.wait(10) + except TimeoutExpired: + ffmpeg.kill() sys.exit(not result.wasSuccessful())