Index: testing/embedder_test_timer_handling_delegate.h |
diff --git a/testing/embedder_test_timer_handling_delegate.h b/testing/embedder_test_timer_handling_delegate.h |
index 709dd22c1723f0cf299c98723aa84c647ab45339..31966159eb95e9afc292bbae711b9e2f9e0752d7 100644 |
--- a/testing/embedder_test_timer_handling_delegate.h |
+++ b/testing/embedder_test_timer_handling_delegate.h |
@@ -38,9 +38,11 @@ class EmbedderTestTimerHandlingDelegate : public EmbedderTest::Delegate { |
} |
int SetTimer(int msecs, TimerCallback fn) override { |
- expiry_to_timer_map_.insert(std::pair<int, Timer>( |
- msecs + fake_elapsed_msecs_, {++next_timer_id_, msecs, fn})); |
- return next_timer_id_; |
+ int id = fail_next_timer_ ? 0 : ++next_timer_id_; |
+ expiry_to_timer_map_.insert( |
+ std::pair<int, Timer>(msecs + fake_elapsed_msecs_, {id, msecs, fn})); |
+ fail_next_timer_ = false; |
+ return id; |
} |
void KillTimer(int id) override { |
@@ -73,8 +75,11 @@ class EmbedderTestTimerHandlingDelegate : public EmbedderTest::Delegate { |
const std::vector<AlertRecord>& GetAlerts() const { return alerts_; } |
+ void SetFailNextTimer() { fail_next_timer_ = true; } |
+ |
protected: |
std::multimap<int, Timer> expiry_to_timer_map_; // Keyed by timeout. |
+ bool fail_next_timer_ = false; |
int next_timer_id_ = 0; |
int fake_elapsed_msecs_ = 0; |
std::vector<AlertRecord> alerts_; |