[PATCH] tests: Don't increment variables inside an assert()

Jon A. Cruz jonc at osg.samsung.com
Fri Jun 19 16:13:11 PDT 2015


On 06/19/2015 03:58 PM, Bryce Harrington wrote:
> Addresses this warning found by Denis Denisov:
> 
>   [tests/array-test.c:137]: (warning) Assert statement modifies 'i'.
> 
> Signed-off-by: Bryce Harrington <bryce at osg.samsung.com>
> ---
>  tests/array-test.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/array-test.c b/tests/array-test.c
> index 37b9afd..fe53240 100644
> --- a/tests/array-test.c
> +++ b/tests/array-test.c
> @@ -126,7 +126,8 @@ TEST(array_for_each)
>  {
>  	static const int elements[] = { 77, 12, 45192, 53280, 334455 };
>  	struct wl_array array;
> -	int *p, i;
> +	int *p;
> +	int i;
>  
>  	wl_array_init(&array);
>  	for (i = 0; i < 5; i++) {
> @@ -136,8 +137,10 @@ TEST(array_for_each)
>  	}
>  
>  	i = 0;
> -	wl_array_for_each(p, &array)
> -		assert(*p == elements[i++]);
> +	wl_array_for_each(p, &array) {
> +		assert(*p == elements[i]);
> +		i++;
> +	}
>  	assert(i == 5);
>  
>  	wl_array_release(&array);


The tests currently state they require DEBUG to be enabled in order to
work, it is still very good to avoid modification from assert() wrapped
code. Moving to a different framework could fail immediately due to this.

Looks good.

Reviewed-by: Jon A. Cruz <jonc at osg.samsung.com>



-- 
Jon A. Cruz - Senior Open Source Developer
Samsung Open Source Group
jonc at osg.samsung.com


More information about the wayland-devel mailing list