summaryrefslogtreecommitdiff
path: root/unittests
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-08-11 16:12:46 -0700
committerEric Anholt <eric@anholt.net>2016-09-16 11:12:42 +0100
commitece40b23559718d0b70f6ae3cc00ed5a87c53081 (patch)
tree391deb7cf8369fa4790aa82fe25c9d6995f58259 /unittests
parent61ad29e093fa635290ba8dfe664d725987684cde (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.py60
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