[Piglit] [PATCH 1/5] cl: Add TRUE definition with type dependent value for generated tests
Aaron Watry
awatry at gmail.com
Wed Jun 11 12:14:11 PDT 2014
Scalar true is 1, but vector true is -1.
This means that getValue needs to know if we are requesting TRUE for
a scalar or vector.
Signed-off-by: Aaron Watry <awatry at gmail.com>
---
generated_tests/genclbuiltins.py | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/generated_tests/genclbuiltins.py b/generated_tests/genclbuiltins.py
index 721191e..2a35375 100644
--- a/generated_tests/genclbuiltins.py
+++ b/generated_tests/genclbuiltins.py
@@ -55,6 +55,7 @@ UMIN = 'unsigned_min_for_type'
UMAX = 'unsigned_max_for_type'
TYPE = 'TYPE'
SIZE = 'SIZE'
+TRUE = 'true_value_for_type' #1 for scalar, -1 for vector
# Identity type list
T = {
@@ -207,7 +208,7 @@ def generate_kernels(f, dataType, fnName, fnDef):
argTypes[0])
return
-def getValue(type, val):
+def getValue(type, val, isVector):
# Check if val is a str, list, or value
if (isinstance(val, str)):
if (val == MIN):
@@ -230,6 +231,11 @@ def getValue(type, val):
return type
elif (val == SIZE):
return DATA_SIZES[type]
+ elif (val == TRUE):
+ if (isVector):
+ return -1
+ else:
+ return 1
else:
print('Unknown string value: ' + val + '\n')
elif (isinstance(val, list)):
@@ -241,15 +247,15 @@ def getValue(type, val):
# Evaluate the value of the requested function and arguments
# TODO: Change to varargs calls after unshifting the first list element
if (len(val) == 2):
- return (val[0])(getValue(type, val[1]))
+ return (val[0])(getValue(type, val[1], isVector))
elif (len(val) == 3):
- return (val[0])(getValue(type, val[1]), getValue(type, val[2]))
+ return (val[0])(getValue(type, val[1], isVector), getValue(type, val[2], isVector))
elif (len(val) == 4):
- return (val[0])(getValue(type, val[1]), getValue(type, val[2]),
- getValue(type, val[3]))
+ return (val[0])(getValue(type, val[1], isVector), getValue(type, val[2], isVector),
+ getValue(type, val[3], isVector))
else:
- return (val[0])(getValue(type, val[1]), getValue(type, val[2]),
- getValue(type, val[3]), getValue(type, val[4]))
+ return (val[0])(getValue(type, val[1], isVector), getValue(type, val[2], isVector),
+ getValue(type, val[3], isVector), getValue(type, val[4], isVector))
# At this point, we should have been passed a number
if (isinstance(val, (int, long, float))):
@@ -259,8 +265,8 @@ def getValue(type, val):
-def getStrVal(type, val):
- return str(getValue(type, val))
+def getStrVal(type, val, isVector):
+ return str(getValue(type, val, isVector))
def getArgType(baseType, argType):
@@ -308,7 +314,7 @@ def print_test(f, fnName, argType, functionDef, tests, testIdx, vecSize, tss):
# For each argument, write a line containing its type, index, and values
for arg in range(0, argCount):
argInOut = ''
- argVal = getStrVal(argType, tests[arg][testIdx])
+ argVal = getStrVal(argType, tests[arg][testIdx], (vecSize > 1))
if arg == 0:
argInOut = 'arg_out: '
else:
--
1.9.1
More information about the Piglit
mailing list