This patch adds a framework test to show the problem with GleanTest.globalParams. It makes use of nose, a python testing framework, which is simple to write tests for, and is in widespread usage for testing python code.
Signed-off-by: Dylan Baker <[email protected]> --- README | 2 ++ framework/gleantest_tests.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 framework/gleantest_tests.py diff --git a/README b/README index 13f1202..dbebc5a 100644 --- a/README +++ b/README @@ -36,6 +36,8 @@ First of all, you need to make sure that the following are installed: - GL, glu and glut libraries and development packages (i.e. headers) - X11 libraries and development packages (i.e. headers) - waffle (http://people.freedesktop.org/~chadversary/waffle) + - nose. Only needed for python framework tests + (https://nose.readthedocs.org/en/latest/) Now configure the build system: diff --git a/framework/gleantest_tests.py b/framework/gleantest_tests.py new file mode 100644 index 0000000..ba2c3a5 --- /dev/null +++ b/framework/gleantest_tests.py @@ -0,0 +1,43 @@ +# Copyright (c) 2014 Intel Corporation + +# 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 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. + + +""" Tests for the glean class. Requires Nose """ + +from framework.gleantest import GleanTest + + +def test_globalParams_assignment(): + """ Test to ensure that GleanTest.globalParams are correctly assigned + + Specifically this tests for a bug where globalParams only affected + instances of GleanTest created after globalParams were set, so changing the + globalParams value had unexpected results. + + If this test passes the GleanTest.command attributes will be the same in + the instance created before the globalParams assignment and the one created + after. A failure means the that globalParams are not being added to tests + initialized before it is set. + + """ + test1 = GleanTest('basic') + GleanTest.globalParams = ['--quick'] + test2 = GleanTest('basic') + assert test1.command == test2.command -- 1.8.5.2 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
