[Piglit] [PATCH 14/14] khr_debug/debug-push-pop-group: fix test

Timothy Arceri t_arceri at yahoo.com.au
Fri Apr 24 21:59:00 PDT 2015


On Mon, 2015-04-13 at 20:28 +0200, Marek Olšák wrote:
> From: Daniel Kurtz <djkurtz at chromium.org>
> 
> AFAICT from [0], only PopDebugGroup() adds a message to the log, not
> PushDebugGroup().
> 
> [0] https://www.opengl.org/registry/specs/KHR/debug.txt
> 
> Thus, there should only be three messages in test_push_pop_debug_group:
>   (1) DebugMessageInsert() -> TestMessage1
>   (2) PopDebugGroup()      -> TestMessage2
>   (3) DebugMessageInsert() -> TestMessage4

Although Daniel is correct that the text describing PushDebugGroup does
not explicitly say that PushDebugGroup adds a message to the log. I
recall basing the piglit test on the example given in the spec which
shows the PushDebugGroup does add a message to the log.

So this change is incorrect.

Example from the spec below:

    Scenario 1: skip a section of the code
    // Setup of the default active debug group: Filter everything in
    glDebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0,
NULL, GL_TRUE);

    // Generate a debug marker debug output message
    glDebugMessageInsert(
        GL_DEBUG_SOURCE_APPLICATION, 
        GL_DEBUG_TYPE_MARKER, 100,
        GL_DEBUG_SEVERITY_NOTIFICATION, 
        -1, "Message 1");
    
    // Push debug group 1
    glPushDebugGroup(
        GL_DEBUG_SOURCE_APPLICATION, 
        1, 
        -1, "Message 2");
 
    // Setup of the debug group 1: Filter everything out
    glDebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0,
NULL, GL_FALSE);

    // This message won't appear in the debug output log of 
    glDebugMessageInsert(
        GL_DEBUG_SOURCE_APPLICATION, 
        GL_DEBUG_TYPE_MARKER, 100,
        GL_DEBUG_SEVERITY_NOTIFICATION, 
        -1, "Message 3"); 
 
    // Pop debug group 1, restore the volume control of the default
debug group.
    glPopDebugGroup();
 
    // Generate a debug marker debug output message
    glDebugMessageInsert(
        GL_DEBUG_SOURCE_APPLICATION,
        GL_DEBUG_TYPE_MARKER, 100,
        GL_DEBUG_SEVERITY_NOTIFICATION, 
        -1, "Message 5");

    // Expected debug output from the GL implementation
    // Message 1 
    // Message 2
    // Message 2
    // Message 5




> 
> Signed-off-by: Daniel Kurtz <djkurtz at chromium.org>
> ---
>  tests/spec/khr_debug/debug-push-pop-group.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/tests/spec/khr_debug/debug-push-pop-group.c b/tests/spec/khr_debug/debug-push-pop-group.c
> index 8fa4474..105bdc4 100644
> --- a/tests/spec/khr_debug/debug-push-pop-group.c
> +++ b/tests/spec/khr_debug/debug-push-pop-group.c
> @@ -268,8 +268,8 @@ static bool test_push_pop_debug_group()
>  				     lengths,
>  				     messageLog);
>  
> -	if (count != 4) {
> -		fprintf(stderr, "The message log should contain 4 messages not %i messages\n", count);
> +	if (count != 3) {
> +		fprintf(stderr, "The message log should contain 3 messages not %i messages\n", count);
>  		nextMessage = 0;
>  		for (i = 0; i < count; i++) {
>  			fprintf(stderr, "%s\n", messageLog+nextMessage);
> @@ -279,14 +279,14 @@ static bool test_push_pop_debug_group()
>  	}
>  
>  	if (pass) {
> -		/* the third message should contain TestMessage2 from PopDebugGroup() */
> -		nextMessage = lengths[0] + lengths[1];
> +		/* the second message should contain TestMessage2 from PopDebugGroup() */
> +		nextMessage = lengths[0];
>  		if (strstr(messageLog+nextMessage, TestMessage2) == NULL) {
>  			fprintf(stderr, "Expected: %s Message: %s\n", TestMessage2, messageLog+nextMessage);
>  			pass = false;
>  		}
>  
> -		/* double check that TestMessage3 didnt sneak into the log */
> +		/* double check that TestMessage3 didn't sneak into the log */
>  		nextMessage = 0;
>  		for (i = 0; i < count; i++) {
>  			if (strstr(messageLog+nextMessage, TestMessage3) != NULL) {
> @@ -297,8 +297,8 @@ static bool test_push_pop_debug_group()
>  			nextMessage += lengths[i];
>  		}
>  
> -		/* the forth message should contain TestMessage4 */
> -		nextMessage = lengths[0] + lengths[1] + lengths[2];
> +		/* the third message should contain TestMessage4 */
> +		nextMessage = lengths[0] + lengths[1];
>  		if (strstr(messageLog+nextMessage, TestMessage4) == NULL) {
>  			fprintf(stderr, "Expected: %s Message: %s\n", TestMessage4, messageLog+nextMessage);
>  			pass = false;




More information about the Piglit mailing list