diff options
author | Eric Anholt <eric@anholt.net> | 2016-08-11 16:12:46 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2016-09-16 11:12:42 +0100 |
commit | ece40b23559718d0b70f6ae3cc00ed5a87c53081 (patch) | |
tree | 391deb7cf8369fa4790aa82fe25c9d6995f58259 /unittests | |
parent | 61ad29e093fa635290ba8dfe664d725987684cde (diff) |
framework: Add a driver classifier based on the renderer string.
For the apitrace test runner, I need to be able to store known-good
images for various drivers, which means I need some way to group
drivers. Not all Mesa drivers we care about are covered here, but
this is a sample to get things started.
v2: Apply feedback from Dylan, add classification for my Skylake.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Diffstat (limited to 'unittests')
-rw-r--r-- | unittests/framework/test_driver_classifier.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/unittests/framework/test_driver_classifier.py b/unittests/framework/test_driver_classifier.py new file mode 100644 index 000000000..a4b043a13 --- /dev/null +++ b/unittests/framework/test_driver_classifier.py @@ -0,0 +1,60 @@ +# Copyright (c) 2016 Broadcom +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +import pytest +import six +from framework import driver_classifier + +class DriverClassifierTester(driver_classifier.DriverClassifier): + """Test class for the driver classifier, taking in a fixed + + renderer string instead of calling glxinfo. + """ + + def __init__(self, renderer): + self.override_renderer = renderer + super(DriverClassifierTester, self).__init__() + + + def collect_driver_info(self): + self.renderer = self.override_renderer + + +class TestDriverClassifier(object): + """Tests for the DriverClassifier class.""" + + @pytest.mark.parametrize( + "renderer, categories", + [ + ('Mesa DRI Intel(R) Haswell Mobile', ['i965-hsw', 'i965', 'mesa']), + ('Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2)', ['i965-skl', 'i965', 'mesa']), + # Old VC4 string + ('Gallium 0.4 on VC4', ['vc4', 'mesa']), + # Modern VC4 string + ('Gallium 0.4 on VC4 V3D 2.1', ['vc4-2.1', 'vc4', 'mesa']), + ], + ids=six.text_type) + def test_renderer_categorization(self, renderer, categories): + """Test that when given a certain renderer string, the correct + + categories list comes back. + """ + assert DriverClassifierTester(renderer).categories == categories |