[Intel-gfx] [PATCH v2] igt/gem_workarounds: rework igt to test workaround registers

Damien Lespiau damien.lespiau at intel.com
Tue Sep 2 11:59:06 CEST 2014


On Tue, Sep 02, 2014 at 10:18:20AM +0100, Arun Siluvery wrote:
> -		igt_assert(fd >= 0);
> +		if (fd < 0)
> +			igt_skip_on("No Workaround table available !!\n");

That's not quite a correct use of the API. The _on is there to signal
the first argument is an expression. This will work only because the
string is evaluated to true. You probably want to use igt_skip_on_f()

http://people.freedesktop.org/~danvet/igt/intel-gpu-tools-i-g-t-core.html#igt-skip-on-f

>  		file = fdopen(fd, "r");
>  		igt_assert(file > 0);
> @@ -193,32 +186,40 @@ igt_main
>  		ret = getline(&line, &line_size, file);
>  		igt_assert(ret > 0);
>  		sscanf(line, "Workarounds applied: %d", &num_wa_regs);
> -		igt_assert(num_wa_regs > 0);
>  
> -		wa_regs = malloc(num_wa_regs * sizeof(*wa_regs));
> +		if (num_wa_regs) {
> +			int i = 0;
>  
> -		i = 0;
> -		while(getline(&line, &line_size, file) > 0) {
> -			sscanf(line, "0x%X: 0x%08X, mask: 0x%08X",
> -			       &wa_regs[i].addr, &wa_regs[i].value,
> -			       &wa_regs[i].mask);
> -			++i;
> -		}
> +			wa_regs = malloc(num_wa_regs * sizeof(*wa_regs));
> +			while (getline(&line, &line_size, file) > 0) {
> +				sscanf(line, "0x%X: 0x%08X, mask: 0x%08X",
> +				       &wa_regs[i].addr, &wa_regs[i].value,
> +				       &wa_regs[i].mask);
> +				++i;
> +			}
> +		} else
> +			igt_info("No workarounds exported\n");

It's a bit weird to just have an igt_info() here and skip in every
single subtest after that. How about a:

  igt_skip_on_f(num_wa_regs == 0, "No workarounds exported\n");

and continue the rest of the test with the case (num_wa_regs == 0) out
of the picture?

-- 
Damien



More information about the Intel-gfx mailing list