Update fallback policy for fast fallback. am: 28b45c4f1b am: 596363ef9e
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/16096533 Change-Id: Ifd8e70f097345d9d17f2c96e7bdd0415fea62ca5
This commit is contained in:
@@ -368,5 +368,110 @@ TEST_F(OkpFallbackPolicyTest, Restore_NeedsProvisioningAgain) {
|
||||
EXPECT_FALSE(system_policy_->IsInFallbackMode());
|
||||
EXPECT_EQ(system_policy_->info().first_checked_time(), kRestoreTime);
|
||||
}
|
||||
|
||||
// Setup:
|
||||
// 1) Device needs OKP
|
||||
// 2) App requests using fast backoff settings.
|
||||
// 3) Fallback occurs
|
||||
// 4) After the fast fallback duration, check for if in fallback
|
||||
// Expectation:
|
||||
// Policy should indicate fallback, duration should be "fast" and
|
||||
// the info is updated.
|
||||
// After the fast fallback duration has passed, the system should
|
||||
// leave fallback state.
|
||||
TEST_F(OkpFallbackPolicyTest, FastRules) {
|
||||
system_policy_->SetFastBackoffDurationRules();
|
||||
constexpr int64_t kFallbackTime = kInitialTime + 10;
|
||||
clock_.SetTime(kFallbackTime);
|
||||
system_policy_->TriggerFallback();
|
||||
// Checks.
|
||||
EXPECT_FALSE(system_policy_->IsProvisioned());
|
||||
EXPECT_TRUE(system_policy_->IsInFallbackMode());
|
||||
EXPECT_EQ(system_policy_->info().backoff_start_time(), kFallbackTime);
|
||||
EXPECT_EQ(system_policy_->info().backoff_duration(), kFastBackoffDuration);
|
||||
|
||||
constexpr int64_t kPostFallbackTime =
|
||||
kFallbackTime + kFastBackoffDuration + 5;
|
||||
clock_.SetTime(kPostFallbackTime);
|
||||
// Checks.
|
||||
EXPECT_FALSE(system_policy_->IsProvisioned());
|
||||
EXPECT_FALSE(system_policy_->IsInFallbackMode());
|
||||
}
|
||||
|
||||
// Setup:
|
||||
// 1) Device needs OKP
|
||||
// 2) Fallback occurs
|
||||
// 3) App requests using fast backoff settings.
|
||||
// 4) Another fallback occurs
|
||||
// Expectation:
|
||||
// 1) Setting rules to fast should end fallback
|
||||
// 2) Second fallback should have a short duration.
|
||||
TEST_F(OkpFallbackPolicyTest, FastRules_AfterFallback) {
|
||||
// First fallback.
|
||||
constexpr int64_t kFirstFallbackTime = kInitialTime + 10;
|
||||
clock_.SetTime(kFirstFallbackTime);
|
||||
system_policy_->TriggerFallback();
|
||||
EXPECT_TRUE(system_policy_->IsInFallbackMode());
|
||||
|
||||
// Set fast fallback.
|
||||
system_policy_->SetFastBackoffDurationRules();
|
||||
EXPECT_FALSE(system_policy_->IsInFallbackMode());
|
||||
|
||||
// Second fallaback.
|
||||
constexpr int64_t kSecondFallbackTime = kFirstFallbackTime + 10;
|
||||
clock_.SetTime(kSecondFallbackTime);
|
||||
system_policy_->TriggerFallback();
|
||||
EXPECT_TRUE(system_policy_->IsInFallbackMode());
|
||||
|
||||
// Checks.
|
||||
EXPECT_FALSE(system_policy_->IsProvisioned());
|
||||
EXPECT_TRUE(system_policy_->IsInFallbackMode());
|
||||
EXPECT_EQ(system_policy_->info().backoff_start_time(), kSecondFallbackTime);
|
||||
EXPECT_EQ(system_policy_->info().backoff_duration(), kFastBackoffDuration);
|
||||
}
|
||||
|
||||
// Setup:
|
||||
// 1) Device needs OKP
|
||||
// 2) App requests using fast backoff settings.
|
||||
// 3) Fallback occurs
|
||||
// 4) After the fast fallback duration, check for if in fallback
|
||||
// 5) Another fallback occurs
|
||||
// 6) After the fast fallback duration, check for if in fallback
|
||||
// Expectation:
|
||||
// There should not be any exponential backoff, similar to FastRules
|
||||
// in all other ways.
|
||||
TEST_F(OkpFallbackPolicyTest, FastRules_FallbackTwice) {
|
||||
system_policy_->SetFastBackoffDurationRules();
|
||||
constexpr int64_t kFirstFallbackTime = kInitialTime + 10;
|
||||
clock_.SetTime(kFirstFallbackTime);
|
||||
system_policy_->TriggerFallback();
|
||||
// Checks.
|
||||
EXPECT_FALSE(system_policy_->IsProvisioned());
|
||||
EXPECT_TRUE(system_policy_->IsInFallbackMode());
|
||||
EXPECT_EQ(system_policy_->info().backoff_start_time(), kFirstFallbackTime);
|
||||
EXPECT_EQ(system_policy_->info().backoff_duration(), kFastBackoffDuration);
|
||||
|
||||
constexpr int64_t kPostFirstFallbackTime =
|
||||
kFirstFallbackTime + kFastBackoffDuration + 5;
|
||||
clock_.SetTime(kPostFirstFallbackTime);
|
||||
EXPECT_FALSE(system_policy_->IsProvisioned());
|
||||
EXPECT_FALSE(system_policy_->IsInFallbackMode());
|
||||
|
||||
constexpr int64_t kSecondFallbackTime = kPostFirstFallbackTime + 10;
|
||||
clock_.SetTime(kSecondFallbackTime);
|
||||
system_policy_->TriggerFallback();
|
||||
|
||||
// Checks.
|
||||
EXPECT_FALSE(system_policy_->IsProvisioned());
|
||||
EXPECT_TRUE(system_policy_->IsInFallbackMode());
|
||||
EXPECT_EQ(system_policy_->info().backoff_start_time(), kSecondFallbackTime);
|
||||
EXPECT_EQ(system_policy_->info().backoff_duration(), kFastBackoffDuration);
|
||||
|
||||
constexpr int64_t kPostSecondFallbackTime =
|
||||
kSecondFallbackTime + kFastBackoffDuration + 5;
|
||||
clock_.SetTime(kPostSecondFallbackTime);
|
||||
EXPECT_FALSE(system_policy_->IsProvisioned());
|
||||
EXPECT_FALSE(system_policy_->IsInFallbackMode());
|
||||
}
|
||||
} // namespace okp
|
||||
} // namespace wvcdm
|
||||
|
||||
Reference in New Issue
Block a user