[igt-dev] [PATCH i-g-t v5 1/2] tests/kms_async_flips: Convert tests to dynamic

Karthik B S karthik.b.s at intel.com
Tue May 31 06:01:23 UTC 2022


On 5/31/2022 12:57 AM, André Almeida wrote:
> Hi Karthik,
Hi Andre,
> Às 03:29 de 30/05/22, Karthik B S escreveu:
>
> [...]
>
>>   
>>   		igt_describe("Wait for page flip events in between successive asynchronous flips");
>> -		igt_subtest("async-flip-with-page-flip-events")
>> -			test_async_flip(&data, false);
>> +		igt_subtest_with_dynamic("async-flip-with-page-flip-events") {
>> +			for_each_pipe(&data.display, pipe) {
>> +				for_each_valid_output_on_pipe(&data.display, pipe, output) {
>> +					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
>> +						data.output = output;
>> +						data.pipe = pipe;
>> +						test_async_flip(&data, false);
>> +					}
>> +
>> +					if (!data.extended)
>> +						break;
>> +				}
>> +			}
>> +		}
>>   
>>   		igt_describe("Alternate between sync and async flips");
>> -		igt_subtest("alternate-sync-async-flip")
>> -			test_async_flip(&data, true);
>> +		igt_subtest_with_dynamic("alternate-sync-async-flip") {
>> +			for_each_pipe(&data.display, pipe) {
>> +				for_each_valid_output_on_pipe(&data.display, pipe, output) {
>> +					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
>> +						data.output = output;
>> +						data.pipe = pipe;
>> +						test_async_flip(&data, true);
>> +					}
>> +
>> +					if (!data.extended)
>> +						break;
>> +				}
>> +			}
>> +		}
>>   
>>   		igt_describe("Verify that the async flip timestamp does not coincide with either previous or next vblank");
>> -		igt_subtest("test-time-stamp")
>> -			test_timestamp(&data);
>> +		igt_subtest_with_dynamic("test-time-stamp") {
>> +			for_each_pipe(&data.display, pipe) {
>> +				for_each_valid_output_on_pipe(&data.display, pipe, output) {
>> +					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
>> +						data.output = output;
>> +						data.pipe = pipe;
>> +						test_timestamp(&data);
>> +					}
>> +
>> +					if (!data.extended)
>> +						break;
>> +				}
>> +			}
>> +		}
>>   
>>   		igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
>> -		igt_subtest("test-cursor")
>> -			test_cursor(&data);
>> +		igt_subtest_with_dynamic("test-cursor") {
>> +			for_each_pipe(&data.display, pipe) {
>> +				for_each_valid_output_on_pipe(&data.display, pipe, output) {
>> +					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
>> +						data.output = output;
>> +						data.pipe = pipe;
>> +						test_cursor(&data);
>> +					}
>> +
>> +					if (!data.extended)
>> +						break;
>> +				}
>> +			}
>> +		}
>>   
>>   		igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
>> -		igt_subtest("invalid-async-flip")
>> -			test_invalid(&data);
>> +		igt_subtest_with_dynamic("invalid-async-flip") {
>> +			for_each_pipe(&data.display, pipe) {
>> +				for_each_valid_output_on_pipe(&data.display, pipe, output) {
>> +					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
>> +						data.output = output;
>> +						data.pipe = pipe;
>> +						test_invalid(&data);
>> +					}
>> +
>> +					if (!data.extended)
>> +						break;
>> +				}
>> +			}
>> +		}
>>   
>>   		igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
>> -		igt_subtest("crc")
>> -			test_crc(&data);
>> +		igt_subtest_with_dynamic("crc") {
>> +			for_each_pipe(&data.display, pipe) {
>> +				for_each_valid_output_on_pipe(&data.display, pipe, output) {
>> +					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
>> +						data.output = output;
>> +						data.pipe = pipe;
>> +						test_crc(&data);
>> +					}
>> +
>> +					if (!data.extended)
>> +						break;
>> +				}
>> +			}
>> +		}
>>   
> I think this is too much code repetition, maybe we could have a helper
> function here?

Sure, will add a helper for this.

Thanks,
Karthik.B.S




More information about the igt-dev mailing list