[Piglit] [PATCH 1/5] arb_uniform_buffer_object: Random test generation infrastructure

Ian Romanick idr at freedesktop.org
Tue Nov 4 16:14:51 PST 2014


On 11/03/2014 01:43 AM, Pohjolainen, Topi wrote:
> On Mon, Nov 03, 2014 at 11:10:25AM +0200, Tapani wrote:
>> On 09/24/2014 07:47 PM, Ian Romanick wrote:
>>> From: Ian Romanick <ian.d.romanick at intel.com>
>>>
>>> This is the core of the random test generation infrastructure.  This
>>> Python script can be used stand-alone to generate fully random tests, or
>>> it can be called from other Python code to generate tests in a more
>>> directed manner.  Examples of both uses are coming in future patches.
>>>
>>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>>
>> 8<
>>
>>> +
>>> +def scalar_derp(type, name, offset, data):
>>> +    if type == "bool":
>>> +        if int(data) == 0:
>>> +            return name
>>> +        else:
>>> +            return "!" + name
>>> +    elif type == "uint":
>>> +        return "{} != {}u".format(name, data)
>>> +    elif type == "int":
>>> +        return "{} != {}".format(name, data)
>>> +    elif type == "float":
>>> +        bits = fudge_data_for_setter(data, "float")
>>> +        return "!float_match({}, {}, {}u)".format(name, data, bits)
>>> +    elif type == "double":
>>> +        bits = fudge_data_for_setter(data, "double")
>>> +
>>> +        # 0xHHHHHHHHLLLLLLLL
>>> +        # 012345678901234567
>>> +
>>> +        hi = "0x" + bits[2:9]
>>> +        lo = "0x" + bits[10:17]
>>
>> I noticed  that the tests had wrong values for hi and lo when testing uvec2
>> against double. We had a look at this with Topi and believe that here
>> generator should use 2:10 and 10:18 to get correct values. Maybe 'bits'
>> could be renamed as 'hex_digits'?
> 
> There were only seven digits per hi/lo in the generated tests and we were
> guessing the indexing here is probably open ended?

I could have sworn that ranges in Python are inclusive... but I think
you are correct:

>>> bits = '0x123456789abcdef'
>>> print bits[2:9]
1234567
>>> print bits[2:10]
12345678
>>>

I did mention that the fp64 parts weren't really tested, right? :)



More information about the Piglit mailing list