From 70916c2bac15eff26b6b226f6bc7321374fde9be Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 4 May 2015 16:52:34 +0000 Subject: [PATCH] add unit test for codecs self test git-svn-id: https://xpra.org/svn/Xpra/trunk@9249 3bb7dfac-3a0b-4e04-842a-767bc560f471 --- src/tests/unit/codecs/codecs_selftest_test.py | 34 +++++++++++++++++++ src/xpra/codecs/loader.py | 4 ++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100755 src/tests/unit/codecs/codecs_selftest_test.py diff --git a/src/tests/unit/codecs/codecs_selftest_test.py b/src/tests/unit/codecs/codecs_selftest_test.py new file mode 100755 index 0000000000..1cbf1feed2 --- /dev/null +++ b/src/tests/unit/codecs/codecs_selftest_test.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# This file is part of Xpra. +# Copyright (C) 2015 Antoine Martin +# Xpra is released under the terms of the GNU GPL v2, or, at your option, any +# later version. See the file COPYING for details. + +import unittest + + +class TestDecoders(unittest.TestCase): + + def test_all_codecs_found(self): + from xpra.codecs import loader + #the self tests would swallow the exceptions and produce a warning: + loader.RUN_SELF_TESTS = False + loader.load_codecs() + #test them all: + for codec_name in loader.ALL_CODECS: + codec = loader.get_codec(codec_name) + if not codec: + continue + #print("found %s: %s" % (codec_name, codec)) + selftest = getattr(codec, "selftest", None) + #print("selftest=%s" % selftest) + if selftest: + selftest() + + + +def main(): + unittest.main() + +if __name__ == '__main__': + main() diff --git a/src/xpra/codecs/loader.py b/src/xpra/codecs/loader.py index 4277493f10..518fb946e6 100755 --- a/src/xpra/codecs/loader.py +++ b/src/xpra/codecs/loader.py @@ -16,6 +16,8 @@ #do not require the libraries to be installed NOWARN = ["nvenc3", "nvenc4", "nvenc5", "opencl"] +RUN_SELF_TESTS = True + codec_errors = {} codecs = {} def codec_import_check(name, description, top_module, class_module, *classnames): @@ -36,7 +38,7 @@ def codec_import_check(name, description, top_module, class_module, *classnames) ic = __import__(class_module, {}, {}, classname) selftest = getattr(ic, "selftest", None) log("%s.selftest=%s", name, selftest) - if selftest: + if RUN_SELF_TESTS and selftest: selftest() #log.warn("codec_import_check(%s, ..)=%s" % (name, ic)) log(" found %s : %s", name, ic)