[Piglit] [PATCH 3/4] cl: Add a python script for generating tests for math builtins
Tom Stellard
tom at stellard.net
Thu Sep 12 10:45:21 PDT 2013
From: Tom Stellard <thomas.stellard at amd.com>
This includes a test for the nextafter builtin.
---
generated_tests/CMakeLists.txt | 4 ++
generated_tests/genclbuiltins.py | 2 +-
generated_tests/generate-cl-math-builtins.py | 66 ++++++++++++++++++++++++++++
tests/all_cl.tests | 1 +
4 files changed, 72 insertions(+), 1 deletion(-)
create mode 100644 generated_tests/generate-cl-math-builtins.py
diff --git a/generated_tests/CMakeLists.txt b/generated_tests/CMakeLists.txt
index a0ba4b1..2a1c3ff 100644
--- a/generated_tests/CMakeLists.txt
+++ b/generated_tests/CMakeLists.txt
@@ -60,6 +60,9 @@ piglit_make_generated_tests(
piglit_make_generated_tests(
cl_store_tests.list
generate-cl-store-tests.py)
+piglit_make_generated_tests(
+ builtin_cl_math_tests.list
+ generate-cl-math-builtins.py)
# Add a "gen-tests" target that can be used to generate all the
# tests without doing any other compilation.
@@ -68,6 +71,7 @@ add_custom_target(gen-tests ALL
builtin_uniform_tests.list
constant_array_size_tests.list
builtin_cl_int_tests.list
+ builtin_cl_math_tests.list
cl_store_tests.list
interpolation_tests.list
non-lvalue_tests.list
diff --git a/generated_tests/genclbuiltins.py b/generated_tests/genclbuiltins.py
index 29dfe39..721191e 100644
--- a/generated_tests/genclbuiltins.py
+++ b/generated_tests/genclbuiltins.py
@@ -252,7 +252,7 @@ def getValue(type, val):
getValue(type, val[3]), getValue(type, val[4]))
# At this point, we should have been passed a number
- if (isinstance(val, (int, long))):
+ if (isinstance(val, (int, long, float))):
return val
print('Invalid value '+repr(val)+' encountered in getValue\n')
diff --git a/generated_tests/generate-cl-math-builtins.py b/generated_tests/generate-cl-math-builtins.py
new file mode 100644
index 0000000..25143ba
--- /dev/null
+++ b/generated_tests/generate-cl-math-builtins.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+#
+# Copyright 2013 Advanced Micro Devices, Inc.
+#
+# 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.
+#
+# Authors: Tom Stellard <thomas.stellard at amd.com>
+#
+
+import os
+
+from genclbuiltins import gen
+
+CLC_VERSION_MIN = {
+ 'nextafter' : 10
+}
+
+DATA_TYPES = ['float']
+
+F = {
+ 'float' : 'float'
+}
+
+tests = {
+ 'nextafter' : {
+ 'arg_types': [F, F, F],
+ 'function_type': 'ttt',
+ 'values': [
+ [1.401298e-45, -1.401298e-45, 1.00000011920928955078125, 0.999999940395355224609375, float("nan"), float("nan"), 5.0 ], # Result
+ [0.0, 0.0 , 1.0, 1.0, float("nan"), 2.5, 5.0], # Arg0
+ [1.0, -1.0 , 2.0, 0.0, 3.4, float("nan"), 5.0], # Arg1
+ ]
+ }
+}
+
+
+def main():
+ dirName = os.path.join("cl", "builtin", "math")
+
+ testDefs = {}
+ functions = sorted(tests.keys())
+ for dataType in DATA_TYPES:
+ for fnName in functions:
+ testDefs[(dataType, fnName)] = tests[fnName]
+
+ gen(DATA_TYPES, CLC_VERSION_MIN, functions, testDefs, dirName)
+
+
+main()
diff --git a/tests/all_cl.tests b/tests/all_cl.tests
index 367319a..b0aa9d7 100644
--- a/tests/all_cl.tests
+++ b/tests/all_cl.tests
@@ -113,6 +113,7 @@ add_program_test_dir(program_execute, 'tests/cl/program/execute/builtin/atomic')
program_execute_builtin = Group()
program["Execute"]["Builtin"] = program_execute_builtin
add_program_test_dir(program_execute_builtin, 'generated_tests/cl/builtin/int')
+add_program_test_dir(program_execute_builtin, 'generated_tests/cl/builtin/math')
program_execute_store = Group()
program["Execute"]["Store"] = program_execute_store
add_program_test_dir(program_execute_store, 'generated_tests/cl/store')
--
1.7.11.4
More information about the Piglit
mailing list