[Piglit] [PATCH] tests/spec/arb_robustness/draw-vbo-bounds.c: add clipping

Ian Romanick idr at freedesktop.org
Thu Nov 1 17:08:29 PDT 2012


On 10/31/2012 03:53 AM, Jose Fonseca wrote:
>
>
> ----- Original Message -----
>> On 10/29/2012 05:34 PM, Roland Scheidegger wrote:
>>> Am 30.10.2012 00:22, schrieb Brian Paul:
>>>> On 10/29/2012 05:05 PM, sroland at vmware.com wrote:
>>>>> From: Roland Scheidegger<sroland at vmware.com>
>>>>>
>>>>> Make sure clipping is needed sometimes, and more often use small
>>>>> index
>>>>> counts,
>>>>> to expose issues and excercise more paths in mesa's draw module.
>>>>> ---
>>>>>     tests/spec/arb_robustness/draw-vbo-bounds.c |    4 ++--
>>>>>     1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/tests/spec/arb_robustness/draw-vbo-bounds.c
>>>>> b/tests/spec/arb_robustness/draw-vbo-bounds.c
>>>>> index 4351ac9..c780a3a 100644
>>>>> --- a/tests/spec/arb_robustness/draw-vbo-bounds.c
>>>>> +++ b/tests/spec/arb_robustness/draw-vbo-bounds.c
>>>>> @@ -95,7 +95,7 @@ random_vertices(GLsizei offset, GLsizei stride,
>>>>> GLsizei count)
>>>>>
>>>>>         for (i = 0; i<  count; ++i) {
>>>>>             GLfloat *vertex = (GLfloat *)(vertices + offset +
>>>>>             i*stride);
>>>>> -        vertex[0] = (rand() % 1000) * .001;
>>>>> +        vertex[0] = (rand() % 1000) * ((rand() % 1000) ? 0.001 :
>>>>> 1.0);
>>>>>             vertex[1] = (rand() % 1000) * .001;
>>>>>         }
>>>>>
>>>>> @@ -145,7 +145,7 @@ static void test(void)
>>>>>         vertex_count = 1 + rand() % 0xffff;
>>>>>
>>>>>         index_offset = (rand() % 0xff) * sizeof(GLushort);
>>>>> -    index_count = 1 + rand() % 0xffff;
>>>>> +    index_count = rand() % 10 ? 1 + rand() % 0xffff : 1 + rand()
>>>>> %
>>>>> 0x7ff;
>>>>>         min_index = rand() % vertex_count;
>>>>>         max_index = min_index + rand() % (vertex_count -
>>>>>         min_index);
>>>>>
>>>>
>>>> Randomness in tests can be OK, but in this case wouldn't you want
>>>> to
>>>> explicitly test some specific coordinates and indexes to make sure
>>>> the
>>>> corner cases are hit?
>>>>
>>>> -Brain
>>>
>>> Well I'm not sure it's worth the trouble note the test is run 1000
>>> times
>>> so probability is very very high that these cases are hit anyway.
>>
>> What happens when one of us gets a bug report that this test fails,
>> but we're unable to reproduce it?
>
>> If I had been paying attention, I
>> would
>> have already objected to the initial use of rand in this test...
>
> I'm not sure if the main objection here is rand itself, or random data at all.
>
> We could use some predictable pseudo number generator instead rand.

I think having:

1. A predictable sequence generator in piglit is a good idea.

2. Any test that uses it should have a way to specify a seed value.

3. Any test that uses it should log the seed value as part of its output.

Few things are more frustrating that not being able to reproduce a failure.

> But the purpose of this test was precisely to stress the driver by throwing random data.
>
> Note that it is not part of any test lists, never was, and does not need to be. I do understand the drawbacks of random data.

Ah.  I didn't realize that.  Still, tests should be reproducible.

> But on the other hand, one cannot honestly claim to have a robust driver without doing random tests. Hand written test cases will never be enough unless one commands the hands of an army of energetic monkeys.
>
> I think he appropriate would be to have a separate "stress" test list for this sort of tests.

Agreed.  And we should have more of them.

> If you don't want random tests on piglit tree at all then I'll happily move them elsewhere. I just thought that being an opengl test and piglit a gl test suite, it would be the right home for it. But it barely depends on piglit infrastructure, so really don't care much where the source is.
>
>
> Jose



More information about the Piglit mailing list