[Piglit] [PATCH 10/35] framework: use a class method for building test via parsing
Dylan Baker
dylan at pnwbakers.com
Wed Apr 4 22:26:58 UTC 2018
Since the serialized tests wont need this path, build a generic
constructor that this special constructor can leverage.
---
framework/test/glsl_parser_test.py | 12 +++-
tests/all.py | 2 +-
unittests/framework/test/test_glsl_parser_test.py | 48 ++++++++--------
3 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/framework/test/glsl_parser_test.py b/framework/test/glsl_parser_test.py
index 6a06bc3..46344a8 100644
--- a/framework/test/glsl_parser_test.py
+++ b/framework/test/glsl_parser_test.py
@@ -272,11 +272,17 @@ class GLSLParserTest(FastSkipMixin, PiglitBaseTest):
.tesc, .tese, .geom or .frag
"""
- def __init__(self, filepath):
- parsed = Parser(filepath)
+ def __init__(self, command, gl_required=set(), glsl_version=None,
+ glsl_es_version=None, **kwargs):
super(GLSLParserTest, self).__init__(
+ command, run_concurrent=True, gl_required=gl_required,
+ glsl_version=glsl_version, glsl_es_version=glsl_es_version)
+
+ @classmethod
+ def new(cls, filepath):
+ parsed = Parser(filepath)
+ return cls(
parsed.command,
- run_concurrent=True,
gl_required=parsed.gl_required,
glsl_version=parsed.glsl_version,
glsl_es_version=parsed.glsl_es_version)
diff --git a/tests/all.py b/tests/all.py
index a50a4c3..fa6b1c3 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -311,7 +311,7 @@ for basedir in [TESTS_DIR, GENERATED_TESTS_DIR]:
continue
elif ext in ['.vert', '.tesc', '.tese', '.geom', '.frag', '.comp']:
try:
- test = GLSLParserTest(os.path.join(dirpath, filename))
+ test = GLSLParserTest.new(os.path.join(dirpath, filename))
except GLSLParserNoConfigError:
# In the event that there is no config assume that it is a
# legacy test, and continue
diff --git a/unittests/framework/test/test_glsl_parser_test.py b/unittests/framework/test/test_glsl_parser_test.py
index d252e27..b396fea 100644
--- a/unittests/framework/test/test_glsl_parser_test.py
+++ b/unittests/framework/test/test_glsl_parser_test.py
@@ -83,7 +83,7 @@ def test_no_config_start(tmpdir):
// [end config]"""))
with pytest.raises(glsl.GLSLParserNoConfigError):
- glsl.GLSLParserTest(six.text_type(p))
+ glsl.GLSLParserTest.new(six.text_type(p))
def test_find_config_start(tmpdir):
@@ -96,7 +96,7 @@ def test_find_config_start(tmpdir):
// glsl_version: 1.10"""))
with pytest.raises(exceptions.PiglitFatalError):
- glsl.GLSLParserTest(six.text_type(p))
+ glsl.GLSLParserTest.new(six.text_type(p))
def test_no_config_end(tmpdir):
@@ -106,7 +106,7 @@ def test_no_config_end(tmpdir):
p.write('// [config]')
with pytest.raises(exceptions.PiglitFatalError):
- glsl.GLSLParserTest(six.text_type(p))
+ glsl.GLSLParserTest.new(six.text_type(p))
def test_no_expect_result(tmpdir):
@@ -119,7 +119,7 @@ def test_no_expect_result(tmpdir):
// [end config]"""))
with pytest.raises(exceptions.PiglitFatalError):
- glsl.GLSLParserTest(six.text_type(p))
+ glsl.GLSLParserTest.new(six.text_type(p))
def test_no_glsl_version(tmpdir):
@@ -132,7 +132,7 @@ def test_no_glsl_version(tmpdir):
// [end config]"""))
with pytest.raises(exceptions.PiglitFatalError):
- glsl.GLSLParserTest(six.text_type(p))
+ glsl.GLSLParserTest.new(six.text_type(p))
def test_cpp_comments(tmpdir):
@@ -144,7 +144,7 @@ def test_cpp_comments(tmpdir):
// expect_result: pass
// glsl_version: 1.10
// [end config]"""))
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
assert test.command == [os.path.join(_TEST_BIN_DIR, 'glslparsertest'),
six.text_type(p), 'pass', '1.10']
@@ -161,7 +161,7 @@ def test_c_comments(tmpdir):
* [end config]
*/"""))
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
assert test.command == [os.path.join(_TEST_BIN_DIR, 'glslparsertest'),
six.text_type(p), 'pass', '1.10']
@@ -177,7 +177,7 @@ def test_blank_in_config_cpp(tmpdir):
// expect_result: pass
// glsl_version: 1.10
// [end config]"""))
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
assert test.command == [os.path.join(_TEST_BIN_DIR, 'glslparsertest'),
six.text_type(p), 'pass', '1.10']
@@ -193,7 +193,7 @@ def test_empty_in_config_cpp(tmpdir):
// expect_result: pass
// glsl_version: 1.10
// [end config]"""))
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
assert test.command == [os.path.join(_TEST_BIN_DIR, 'glslparsertest'),
six.text_type(p), 'pass', '1.10']
@@ -210,7 +210,7 @@ def test_blank_in_config_c(tmpdir):
* glsl_version: 1.10
* [end config]
*/"""))
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
assert test.command == [os.path.join(_TEST_BIN_DIR, 'glslparsertest'),
six.text_type(p), 'pass', '1.10']
@@ -227,7 +227,7 @@ def test_empty_in_config_c(tmpdir):
* glsl_version: 1.10
* [end config]
*/"""))
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
assert test.command == [os.path.join(_TEST_BIN_DIR, 'glslparsertest'),
six.text_type(p), 'pass', '1.10']
@@ -253,7 +253,7 @@ def test_config_to_command(config, expected, tmpdir):
"""Test that config blocks are converted into the expected commands."""
p = tmpdir.join('test.frag')
p.write(config)
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
# add the filename, which isn't known util now
expected.insert(1, six.text_type(p))
@@ -272,7 +272,7 @@ def test_bad_section_name(tmpdir):
// [end config]"""))
with pytest.raises(exceptions.PiglitFatalError):
- glsl.GLSLParserTest(six.text_type(p))
+ glsl.GLSLParserTest.new(six.text_type(p))
@pytest.mark.parametrize(
@@ -293,7 +293,7 @@ def test_duplicate_entry(extra, tmpdir):
// [end config]""".format(extra)))
with pytest.raises(exceptions.PiglitFatalError):
- glsl.GLSLParserTest(six.text_type(p))
+ glsl.GLSLParserTest.new(six.text_type(p))
@pytest.mark.parametrize(
@@ -313,7 +313,7 @@ def test_invalid_extensions_separator(separator, tmpdir):
// [end config]""".format(separator)))
with pytest.raises(exceptions.PiglitFatalError):
- glsl.GLSLParserTest(six.text_type(p))
+ glsl.GLSLParserTest.new(six.text_type(p))
@pytest.mark.parametrize(
@@ -333,7 +333,7 @@ def test_valid_extensions(ext, tmpdir):
// [end config]""".format(ext)))
expected = ext.split(' ')
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
assert test.command[-len(expected):] == expected
@@ -365,7 +365,7 @@ def test_get_glslparsertest_gles2(version, has_bin, forced, tmpdir, mocker):
* glsl_version: {}
* [end config]
*/""".format(version)))
- inst = glsl.GLSLParserTest(six.text_type(p))
+ inst = glsl.GLSLParserTest.new(six.text_type(p))
assert os.path.basename(inst.command[0]) == expected
@@ -384,23 +384,23 @@ class TestGLSLParserTestSkipRequirements(object):
def test_glsl_version(self, tmpdir):
p = tmpdir.join('test.frag')
self.write_config(p)
- assert glsl.GLSLParserTest(six.text_type(p)).glsl_version == 4.3
+ assert glsl.GLSLParserTest.new(six.text_type(p)).glsl_version == 4.3
def test_glsl_es_version(self, tmpdir):
p = tmpdir.join('test.frag')
self.write_config(p, version='3.0')
- assert glsl.GLSLParserTest(six.text_type(p)).glsl_es_version == 3.0
+ assert glsl.GLSLParserTest.new(six.text_type(p)).glsl_es_version == 3.0
def test_gl_required(self, tmpdir):
p = tmpdir.join('test.frag')
self.write_config(p, extra="require_extensions: GL_ARB_foo GL_ARB_bar")
- assert glsl.GLSLParserTest(six.text_type(p)).gl_required == \
+ assert glsl.GLSLParserTest.new(six.text_type(p)).gl_required == \
{'GL_ARB_foo', 'GL_ARB_bar'}
def test_exclude_not_added_to_gl_required(self, tmpdir):
p = tmpdir.join('test.frag')
self.write_config(p, extra="require_extensions: GL_ARB_foo !GL_ARB_bar")
- assert glsl.GLSLParserTest(six.text_type(p)).gl_required == \
+ assert glsl.GLSLParserTest.new(six.text_type(p)).gl_required == \
{'GL_ARB_foo'}
@@ -417,7 +417,7 @@ def test_skip_desktop_without_binary(tmpdir, mocker):
* glsl_version: 1.10
* [end config]
*/"""))
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
with pytest.raises(_TestIsSkip):
test.is_skip()
@@ -446,7 +446,7 @@ def test_add_compatibility_requirement_fastskip(version, extension, tmpdir,
* require_extensions: GL_ARB_ham_sandwhich
* [end config]
*/""".format(version)))
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
# The arb_compat extension was added to the fast skipping arguments
assert extension in test.gl_required
@@ -476,7 +476,7 @@ def test_add_compatibility_requirement_binary(version, extension, tmpdir,
* require_extensions: GL_ARB_ham_sandwhich
* [end config]
*/""".format(version)))
- test = glsl.GLSLParserTest(six.text_type(p))
+ test = glsl.GLSLParserTest.new(six.text_type(p))
# The compat extension was added to the slow skipping (C level)
# requirements
--
git-series 0.9.1
More information about the Piglit
mailing list