blob: 7d89a4c00016aee60a9bac3ae99afe0e03378e4e [file] [log] [blame]
Rasmus Brandt3dde4502019-03-21 11:46:17 +01001/*
2 * Copyright 2019 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "rtc_base/experiments/keyframe_interval_settings.h"
Jonas Olssona4d87372019-07-05 19:08:33 +020012
Rasmus Brandt3dde4502019-03-21 11:46:17 +010013#include "test/field_trial.h"
14#include "test/gtest.h"
15
16namespace webrtc {
17namespace {
18
19TEST(KeyframeIntervalSettingsTest, ParsesMinKeyframeSendIntervalMs) {
20 EXPECT_FALSE(KeyframeIntervalSettings::ParseFromFieldTrials()
21 .MinKeyframeSendIntervalMs());
22
23 test::ScopedFieldTrials field_trials(
24 "WebRTC-KeyframeInterval/min_keyframe_send_interval_ms:100/");
25 EXPECT_EQ(KeyframeIntervalSettings::ParseFromFieldTrials()
26 .MinKeyframeSendIntervalMs(),
27 100);
28}
29
30TEST(KeyframeIntervalSettingsTest, ParsesMaxWaitForKeyframeMs) {
31 EXPECT_FALSE(
32 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs());
33
34 test::ScopedFieldTrials field_trials(
35 "WebRTC-KeyframeInterval/max_wait_for_keyframe_ms:100/");
36 EXPECT_EQ(
37 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs(),
38 100);
39}
40
41TEST(KeyframeIntervalSettingsTest, ParsesMaxWaitForFrameMs) {
42 EXPECT_FALSE(
43 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs());
44
45 test::ScopedFieldTrials field_trials(
46 "WebRTC-KeyframeInterval/max_wait_for_frame_ms:100/");
47 EXPECT_EQ(
48 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs(),
49 100);
50}
51
52TEST(KeyframeIntervalSettingsTest, ParsesAllValues) {
53 test::ScopedFieldTrials field_trials(
54 "WebRTC-KeyframeInterval/"
55 "min_keyframe_send_interval_ms:100,"
56 "max_wait_for_keyframe_ms:101,"
57 "max_wait_for_frame_ms:102/");
58 EXPECT_EQ(KeyframeIntervalSettings::ParseFromFieldTrials()
59 .MinKeyframeSendIntervalMs(),
60 100);
61 EXPECT_EQ(
62 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs(),
63 101);
64 EXPECT_EQ(
65 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs(),
66 102);
67}
68
69TEST(KeyframeIntervalSettingsTest, DoesNotParseAllValuesWhenIncorrectlySet) {
70 EXPECT_FALSE(
71 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs());
72
73 test::ScopedFieldTrials field_trials(
74 "WebRTC-KeyframeInterval/"
75 "min_keyframe_send_interval_ms:a,"
76 "max_wait_for_keyframe_ms:b,"
77 "max_wait_for_frame_ms:c/");
78 EXPECT_FALSE(KeyframeIntervalSettings::ParseFromFieldTrials()
79 .MinKeyframeSendIntervalMs());
80 EXPECT_FALSE(
81 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForKeyframeMs());
82 EXPECT_FALSE(
83 KeyframeIntervalSettings::ParseFromFieldTrials().MaxWaitForFrameMs());
84}
85
86} // namespace
87} // namespace webrtc