[Piglit] [PATCH] main: Test for CreateBuffers.

Laura Ekstrand laura at jlekstrand.net
Thu Mar 5 10:49:06 PST 2015


Oops, sorry I just realized that the commit message was wrong: "main"
should be "arb_direct_state_access" instead.

On Thu, Mar 5, 2015 at 12:49 AM, Martin Peres <martin.peres at linux.intel.com>
wrote:

> On 05/03/15 03:48, Ilia Mirkin wrote:
>
>> On Wed, Mar 4, 2015 at 8:38 PM, Laura Ekstrand <laura at jlekstrand.net>
>> wrote:
>>
>>> ---
>>>   tests/all.py                                       |  1 +
>>>   .../spec/arb_direct_state_access/CMakeLists.gl.txt |  1 +
>>>   .../spec/arb_direct_state_access/create-buffers.c  | 78
>>> ++++++++++++++++++++++
>>>   3 files changed, 80 insertions(+)
>>>   create mode 100644 tests/spec/arb_direct_state_access/create-buffers.c
>>>
>>> diff --git a/tests/all.py b/tests/all.py
>>> index 0f07105..e60a02c 100644
>>> --- a/tests/all.py
>>> +++ b/tests/all.py
>>> @@ -4006,6 +4006,7 @@ spec['ARB_direct_state_access']['compressedtexturesubimage']
>>> = PiglitGLTest(['ar
>>>   spec['ARB_direct_state_access']['texture-storage-multisample'] =
>>> PiglitGLTest(['arb_direct_state_access-texture-storage-multisample'],
>>> run_concurrent=True)
>>>   spec['ARB_direct_state_access']['texture-buffer'] =
>>> PiglitGLTest(['arb_direct_state_access-texture-buffer'],
>>> run_concurrent=True)
>>>   spec['ARB_direct_state_access']['texture-buffer-range'] =
>>> PiglitGLTest(['arb_direct_state_access-texture-buffer-range'],
>>> run_concurrent=True)
>>> +spec['ARB_direct_state_access']['create-buffers'] =
>>> PiglitGLTest(['arb_direct_state_access-create-buffers'],
>>> run_concurrent=True)
>>>   spec['ARB_direct_state_access']['namedbufferstorage-persistent'] =
>>> PiglitGLTest(['arb_direct_state_access-namedbufferstorage-persistent'],
>>> run_concurrent=True)
>>>   spec['ARB_direct_state_access']['namedbuffersubdata-vbo-sync'] =
>>> PiglitGLTest(['arb_direct_state_access-namedbuffersubdata-vbo-sync'],
>>> run_concurrent=True)
>>>   spec['ARB_direct_state_access']['clearnamedbufferdata-invalid-internal-format']
>>> = PiglitGLTest(['arb_direct_state_access-clearnamedbufferdata-invalid-internal-format'],
>>> run_concurrent=True)
>>> diff --git a/tests/spec/arb_direct_state_access/CMakeLists.gl.txt
>>> b/tests/spec/arb_direct_state_access/CMakeLists.gl.txt
>>> index b2b7465..2a4915d 100644
>>> --- a/tests/spec/arb_direct_state_access/CMakeLists.gl.txt
>>> +++ b/tests/spec/arb_direct_state_access/CMakeLists.gl.txt
>>> @@ -10,6 +10,7 @@ link_libraries (
>>>   )
>>>
>>>   piglit_add_executable (arb_direct_state_access-create-transformfeedbacks
>>> create-transformfeedbacks.c)
>>> +piglit_add_executable (arb_direct_state_access-create-buffers
>>> create-buffers.c)
>>>   piglit_add_executable (arb_direct_state_access-namedbufferstorage-persistent
>>> namedbufferstorage.c)
>>>   piglit_add_executable (arb_direct_state_access-namedbuffersubdata-vbo-sync
>>> namedbuffersubdata-vbo-sync.c)
>>>   piglit_add_executable (arb_direct_state_access-
>>> clearnamedbufferdata-invalid-internal-format
>>> clearnamedbufferdata-invalid-internal-format.c)
>>> diff --git a/tests/spec/arb_direct_state_access/create-buffers.c
>>> b/tests/spec/arb_direct_state_access/create-buffers.c
>>> new file mode 100644
>>> index 0000000..12fcf0b
>>> --- /dev/null
>>> +++ b/tests/spec/arb_direct_state_access/create-buffers.c
>>> @@ -0,0 +1,78 @@
>>> +/*
>>> + * Copyright 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"),
>>> + * 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.
>>> + */
>>> +
>>> +/** @file create_buffers.c
>>> + *
>>> + * Tests glCreateBuffers to see if it behaves in the expected way,
>>> + * throwing the correct errors, etc.
>>> + */
>>> +
>>> +#include "piglit-util-gl.h"
>>> +
>>> +PIGLIT_GL_TEST_CONFIG_BEGIN
>>> +
>>> +       config.supports_gl_compat_version = 32;
>>>
>> This will never run on mesa, right? I assume you meant
>>
>> supports_gl_core_version = 31 (or 32?)
>>
>
> Why 32? 31 should be enough and that is also what I used on all my tests.
>
>
>  +
>>> +       config.window_visual = PIGLIT_GL_VISUAL_RGBA |
>>> +               PIGLIT_GL_VISUAL_DOUBLE;
>>> +
>>> +PIGLIT_GL_TEST_CONFIG_END
>>> +
>>> +void
>>> +piglit_init(int argc, char **argv)
>>> +{
>>> +       piglit_require_extension("GL_ARB_direct_state_access");
>>> +}
>>> +
>>> +enum piglit_result
>>> +piglit_display(void)
>>> +{
>>> +       bool pass = true;
>>> +       GLuint name;
>>> +       GLboolean ret;
>>> +
>>> +       /* Throw some invalid inputs at glCreateBuffers. */
>>> +
>>> +       /* n is negative */
>>> +       glCreateBuffers(-1, &name);
>>> +       pass = piglit_check_gl_error(GL_INVALID_VALUE) && pass;
>>> +
>>> +       /* name is not a valid pointer */
>>> +       glCreateBuffers(1, 0);
>>> +       pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
>>> +       glCreateBuffers(1, NULL);
>>> +       pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
>>>
>>
> Good idea to tests this! No need to test for both 0 and NULL though.
>
>> +
>>> +
>>> +       /* Check if it actually generates a real buffer object */
>>> +
>>> +       glCreateBuffers(1, &name);
>>> +       pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
>>> +
>>> +       ret = glIsBuffer(name);
>>> +       pass = (ret == GL_TRUE) && pass;
>>> +       pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
>>> +
>>> +       return pass ? PIGLIT_PASS : PIGLIT_FAIL;
>>> +}
>>> +
>>> --
>>> 2.1.0
>>>
>>
> I would really like to have multiple subtests here to show what we really
> test and not to have to open the test c file to know what went wrong.
>
> Could you use the SUBTEST macros and give the same name to the tests that
> I had in all my create-* tests? [0]
>
> Don't forget to delete the buffer at the end. Not that it should matter
> but some people apparently run valgrind / coverty on piglit and they find
> this kind of "bugs".
>
> Thanks!
>
> [0] http://cgit.freedesktop.org/piglit/commit/?id=
> 0c8acebafefbe5cb400c055d9880788f22339ce3
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20150305/5edfb9a1/attachment.html>


More information about the Piglit mailing list