Add per channel storage durations
This lets us save images for less time than everything else, since they
are the main driver of queue memory usage.
Change-Id: I677791e20af6aedb0288d09cf5963b4dde30ecce
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/events/event_loop_param_test.cc b/aos/events/event_loop_param_test.cc
index 0d7794e..0559aae 100644
--- a/aos/events/event_loop_param_test.cc
+++ b/aos/events/event_loop_param_test.cc
@@ -3332,5 +3332,24 @@
EXPECT_EQ(SendTestMessage(sender2), RawSender::Error::kMessagesSentTooFast);
}
+// Tests that a longer storage durations store more messages.
+TEST_P(AbstractEventLoopTest, SendingTooFastWithLongDuration) {
+ auto loop1 = MakePrimary();
+
+ auto sender1 = loop1->MakeSender<TestMessage>("/test3");
+
+ // Send queue_size messages split between the senders.
+ const int queue_size =
+ configuration::QueueSize(loop1->configuration(), sender1.channel());
+ EXPECT_EQ(queue_size, 100 * 10);
+ for (int i = 0; i < queue_size; i++) {
+ ASSERT_EQ(SendTestMessage(sender1), RawSender::Error::kOk);
+ }
+
+ // Since queue_size messages have been sent, and little time has elapsed,
+ // this should return an error.
+ EXPECT_EQ(SendTestMessage(sender1), RawSender::Error::kMessagesSentTooFast);
+}
+
} // namespace testing
} // namespace aos