[Piglit] [PATCH 02/24] gen_shader_bit_encoding_tests.py: split template into separate file
Dylan Baker
baker.dylan.c at gmail.com
Mon Nov 24 09:58:02 PST 2014
Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
generated_tests/CMakeLists.txt | 4 +-
generated_tests/gen_shader_bit_encoding_tests.py | 102 ++-------------------
.../template.shader_test.mako | 87 ++++++++++++++++++
3 files changed, 98 insertions(+), 95 deletions(-)
create mode 100644 generated_tests/templates/gen_shader_bit_encoding_tests/template.shader_test.mako
diff --git a/generated_tests/CMakeLists.txt b/generated_tests/CMakeLists.txt
index 6d27b3e..8b62807 100644
--- a/generated_tests/CMakeLists.txt
+++ b/generated_tests/CMakeLists.txt
@@ -44,7 +44,9 @@ piglit_make_generated_tests(
gen_texture_query_lod_tests.py)
piglit_make_generated_tests(
shader_bit_encoding_tests.list
- gen_shader_bit_encoding_tests.py)
+ gen_shader_bit_encoding_tests.py
+ templates/gen_shader_bit_encoding_tests/template.shader_test.mako
+ )
piglit_make_generated_tests(
uniform-initializer_tests.list
gen_uniform_initializer_tests.py
diff --git a/generated_tests/gen_shader_bit_encoding_tests.py b/generated_tests/gen_shader_bit_encoding_tests.py
index 6f8755d..84b9390 100644
--- a/generated_tests/gen_shader_bit_encoding_tests.py
+++ b/generated_tests/gen_shader_bit_encoding_tests.py
@@ -1,6 +1,6 @@
# coding=utf-8
#
-# Copyright © 2013 Intel Corporation
+# Copyright © 2013, 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"),
@@ -23,9 +23,12 @@
import struct
import os
-import os.path
-from mako.template import Template
-from textwrap import dedent
+
+from templates import template_file
+
+TEMPLATE = template_file(os.path.basename(os.path.splitext(__file__)[0]),
+ 'template.shader_test.mako')
+
def floatBitsToInt(f):
return struct.unpack('i', struct.pack('f', f))[0]
@@ -123,95 +126,6 @@ requirements = {
}
}
-template = Template(dedent("""\
- [require]
- GLSL >= ${version}
- % for extension in extensions:
- ${extension}
- % endfor
-
- [vertex shader]
- % if execution_stage == 'vs':
- % for extension in extensions:
- #extension ${extension}: enable
- % endfor
-
- uniform ${input_type} given;
- uniform ${output_type} expected;
- out vec4 color;
- % endif
-
- in vec4 vertex;
-
- void main() {
- gl_Position = vertex;
-
- % if execution_stage == 'vs':
- color = vec4(0.0, 1.0, 0.0, 1.0);
-
- if (expected.x != ${func}(${in_modifier_func}(given.x)))
- color.r = 1.0;
- if (expected.xy != ${func}(${in_modifier_func}(given.xy)))
- color.r = 1.0;
- if (expected.xyz != ${func}(${in_modifier_func}(given.xyz)))
- color.r = 1.0;
- if (expected != ${func}(${in_modifier_func}(given)))
- color.r = 1.0;
- % endif
- }
-
- [fragment shader]
- % if execution_stage == 'fs':
- % for extension in extensions:
- #extension ${extension}: enable
- % endfor
-
- uniform ${input_type} given;
- uniform ${output_type} expected;
- % else:
- in vec4 color;
- % endif
-
- out vec4 frag_color;
-
- void main() {
- % if execution_stage == 'fs':
- frag_color = vec4(0.0, 1.0, 0.0, 1.0);
-
- if (expected.x != ${func}(${in_modifier_func}(given.x)))
- frag_color.r = 1.0;
- if (expected.xy != ${func}(${in_modifier_func}(given.xy)))
- frag_color.r = 1.0;
- if (expected.xyz != ${func}(${in_modifier_func}(given.xyz)))
- frag_color.r = 1.0;
- if (expected != ${func}(${in_modifier_func}(given)))
- frag_color.r = 1.0;
- % else:
- frag_color = color;
- % endif
- }
-
- [vertex data]
- vertex/float/2
- -1.0 -1.0
- 1.0 -1.0
- 1.0 1.0
- -1.0 1.0
-
- [test]
- % for name, data in sorted(test_data.iteritems()):
- % if name == '-0.0' and in_modifier_func != '' and func == 'intBitsToFloat':
- # ${in_modifier_func}(INT_MIN) doesn't fit in a 32-bit int. Cannot test.
- % else:
- # ${name}
- uniform ${input_type} given ${' '.join(str(in_func(d)) for d in data)}
- uniform ${output_type} expected ${' '.join(str(out_func(modifier_func(in_func(d)))) for d in data)}
- draw arrays GL_TRIANGLE_FAN 0 4
- probe all rgba 0.0 1.0 0.0 1.0
- % endif
-
- % endfor
-"""))
for api, requirement in requirements.iteritems():
version = requirement['version']
@@ -251,7 +165,7 @@ for api, requirement in requirements.iteritems():
in_modifier_func = '-abs'
f = open(filename, 'w')
- f.write(template.render(version=version,
+ f.write(TEMPLATE.render(version=version,
extensions=extensions,
execution_stage=execution_stage,
func=func,
diff --git a/generated_tests/templates/gen_shader_bit_encoding_tests/template.shader_test.mako b/generated_tests/templates/gen_shader_bit_encoding_tests/template.shader_test.mako
new file mode 100644
index 0000000..83eb567
--- /dev/null
+++ b/generated_tests/templates/gen_shader_bit_encoding_tests/template.shader_test.mako
@@ -0,0 +1,87 @@
+[require]
+GLSL >= ${version}
+% for extension in extensions:
+${extension}
+% endfor
+
+[vertex shader]
+% if execution_stage == 'vs':
+% for extension in extensions:
+#extension ${extension}: enable
+% endfor
+
+uniform ${input_type} given;
+uniform ${output_type} expected;
+out vec4 color;
+% endif
+
+in vec4 vertex;
+
+void main() {
+ gl_Position = vertex;
+
+ % if execution_stage == 'vs':
+ color = vec4(0.0, 1.0, 0.0, 1.0);
+
+ if (expected.x != ${func}(${in_modifier_func}(given.x)))
+ color.r = 1.0;
+ if (expected.xy != ${func}(${in_modifier_func}(given.xy)))
+ color.r = 1.0;
+ if (expected.xyz != ${func}(${in_modifier_func}(given.xyz)))
+ color.r = 1.0;
+ if (expected != ${func}(${in_modifier_func}(given)))
+ color.r = 1.0;
+ % endif
+}
+
+[fragment shader]
+% if execution_stage == 'fs':
+% for extension in extensions:
+#extension ${extension}: enable
+% endfor
+
+uniform ${input_type} given;
+uniform ${output_type} expected;
+% else:
+in vec4 color;
+% endif
+
+out vec4 frag_color;
+
+void main() {
+ % if execution_stage == 'fs':
+ frag_color = vec4(0.0, 1.0, 0.0, 1.0);
+
+ if (expected.x != ${func}(${in_modifier_func}(given.x)))
+ frag_color.r = 1.0;
+ if (expected.xy != ${func}(${in_modifier_func}(given.xy)))
+ frag_color.r = 1.0;
+ if (expected.xyz != ${func}(${in_modifier_func}(given.xyz)))
+ frag_color.r = 1.0;
+ if (expected != ${func}(${in_modifier_func}(given)))
+ frag_color.r = 1.0;
+ % else:
+ frag_color = color;
+ % endif
+}
+
+[vertex data]
+vertex/float/2
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0 1.0
+-1.0 1.0
+
+[test]
+% for name, data in sorted(test_data.iteritems()):
+% if name == '-0.0' and in_modifier_func != '' and func == 'intBitsToFloat':
+# ${in_modifier_func}(INT_MIN) doesn't fit in a 32-bit int. Cannot test.
+% else:
+# ${name}
+uniform ${input_type} given ${' '.join(str(in_func(d)) for d in data)}
+uniform ${output_type} expected ${' '.join(str(out_func(modifier_func(in_func(d)))) for d in data)}
+draw arrays GL_TRIANGLE_FAN 0 4
+probe all rgba 0.0 1.0 0.0 1.0
+% endif
+
+% endfor
--
2.1.3
More information about the Piglit
mailing list