DoesUtilizeUlpfecForVp9WithNackEnabled is flaky.

Try to increase the timeout to see if it solves the flakiness issue.
If it doesn't work we should temporary disable this test.

Change-Id: I8ecf3721cb5f7f4c647c8cbf247740c89c72ab82
Bug: webrtc:15885
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/343982
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#41946}
This commit is contained in:
Jeremy Leconte 2024-03-21 17:25:39 +01:00 committed by WebRTC LUCI CQ
parent 2c1cfd047f
commit 28efb5acb4

View File

@ -108,6 +108,10 @@ enum class WaitUntil : bool { kZero = false, kNonZero = true };
constexpr int64_t kRtcpIntervalMs = 1000; constexpr int64_t kRtcpIntervalMs = 1000;
// Some of the test cases are expected to time out.
// Use a shorter timeout window than the default one for those.
constexpr TimeDelta kReducedTimeout = TimeDelta::Seconds(10);
enum VideoFormat { enum VideoFormat {
kGeneric, kGeneric,
kVP8, kVP8,
@ -519,18 +523,15 @@ class FakeReceiveStatistics : public ReceiveStatisticsProvider {
class UlpfecObserver : public test::EndToEndTest { class UlpfecObserver : public test::EndToEndTest {
public: public:
// Some of the test cases are expected to time out. UlpfecObserver(
// Use a shorter timeout window than the default one for those. bool header_extensions_enabled,
static constexpr TimeDelta kReducedTimeout = TimeDelta::Seconds(10); bool use_nack,
bool expect_red,
UlpfecObserver(bool header_extensions_enabled, bool expect_ulpfec,
bool use_nack, const std::string& codec,
bool expect_red, VideoEncoderFactory* encoder_factory,
bool expect_ulpfec, const TimeDelta& timeout = test::VideoTestConstants::kDefaultTimeout)
const std::string& codec, : EndToEndTest(timeout),
VideoEncoderFactory* encoder_factory)
: EndToEndTest(expect_ulpfec ? test::VideoTestConstants::kDefaultTimeout
: kReducedTimeout),
encoder_factory_(encoder_factory), encoder_factory_(encoder_factory),
payload_name_(codec), payload_name_(codec),
use_nack_(use_nack), use_nack_(use_nack),
@ -692,7 +693,8 @@ class VideoSendStreamWithoutUlpfecTest : public test::CallTest {
TEST_F(VideoSendStreamWithoutUlpfecTest, NoUlpfecIfDisabledThroughFieldTrial) { TEST_F(VideoSendStreamWithoutUlpfecTest, NoUlpfecIfDisabledThroughFieldTrial) {
test::FunctionVideoEncoderFactory encoder_factory( test::FunctionVideoEncoderFactory encoder_factory(
[]() { return VP8Encoder::Create(); }); []() { return VP8Encoder::Create(); });
UlpfecObserver test(false, false, false, false, "VP8", &encoder_factory); UlpfecObserver test(false, false, false, false, "VP8", &encoder_factory,
kReducedTimeout);
RunBaseTest(&test); RunBaseTest(&test);
} }
@ -704,7 +706,8 @@ TEST_F(VideoSendStreamTest, DoesNotUtilizeUlpfecForH264WithNackEnabled) {
test::FunctionVideoEncoderFactory encoder_factory([]() { test::FunctionVideoEncoderFactory encoder_factory([]() {
return std::make_unique<test::FakeH264Encoder>(Clock::GetRealTimeClock()); return std::make_unique<test::FakeH264Encoder>(Clock::GetRealTimeClock());
}); });
UlpfecObserver test(false, true, false, false, "H264", &encoder_factory); UlpfecObserver test(false, true, false, false, "H264", &encoder_factory,
kReducedTimeout);
RunBaseTest(&test); RunBaseTest(&test);
} }
@ -728,7 +731,9 @@ TEST_F(VideoSendStreamTest, DoesUtilizeUlpfecForVp8WithNackEnabled) {
TEST_F(VideoSendStreamTest, DoesUtilizeUlpfecForVp9WithNackEnabled) { TEST_F(VideoSendStreamTest, DoesUtilizeUlpfecForVp9WithNackEnabled) {
test::FunctionVideoEncoderFactory encoder_factory( test::FunctionVideoEncoderFactory encoder_factory(
[]() { return VP9Encoder::Create(); }); []() { return VP9Encoder::Create(); });
UlpfecObserver test(false, true, true, true, "VP9", &encoder_factory); // Use kLongTimeout timeout because the test is flaky with kDefaultTimeout.
UlpfecObserver test(false, true, true, true, "VP9", &encoder_factory,
test::VideoTestConstants::kLongTimeout);
RunBaseTest(&test); RunBaseTest(&test);
} }
#endif // defined(RTC_ENABLE_VP9) #endif // defined(RTC_ENABLE_VP9)