[PATCH v2 2/4] mf/tests: Check that the sample grabber generates stream sink events.
Nikolay Sivov
nsivov at codeweavers.com
Fri May 28 03:32:58 CDT 2021
On 5/28/21 10:50 AM, Giovanni Mascellani wrote:
> +#define expect_event(s, m) expect_event_(__LINE__, s, m)
> +static void expect_event_(int line, IMFStreamSink *stream, MediaEventType met)
> +{
> + HRESULT hr, hr2;
> + IMFMediaEvent *event;
> + MediaEventType got_met;
> +
> + hr = IMFStreamSink_GetEvent(stream, 0, &event);
> + ok_(__FILE__, line)(hr == S_OK, "Cannot get event, hr %#x.\n", hr);
> + ok_(__FILE__, line)(event != NULL, "Got NULL event.\n");
> +
> + hr = IMFMediaEvent_GetStatus(event, &hr2);
> + ok_(__FILE__, line)(hr == S_OK, "Cannot get status, hr %#x.\n", hr);
> + ok_(__FILE__, line)(hr2 == S_OK, "Unexpected status, hr %#x.\n", hr2);
> +
> + hr = IMFMediaEvent_GetType(event, &got_met);
> + ok_(__FILE__, line)(hr == S_OK, "Cannot get type, hr %#x.\n", hr);
> + ok_(__FILE__, line)(got_met == met, "Unexpected event type %d instead of %d.\n", got_met, met);
> +
> + IMFMediaEvent_Release(event);
> +}
I don't think we want that, it's blocking, so can potentially hang the
test program, and you won't know where that happened.
> + for (i = 0; i < 4; i++)
> + expect_event(stream, MEStreamSinkRequestSample);
> + expect_event(stream, MEStreamSinkStarted);
Same here, the test only cares for state changes, and checking for
everything exposes this improvised on-start prerolling.
More information about the wine-devel
mailing list