Do less work when skipping timing reports
For some tests, the overhead of building up the table during startup is
a significant part of the runtime of the test. This speeds up one test
by 57% for example.
Change-Id: I370237510f8fcfe1c8a18395293f25fe44932f9e
Signed-off-by: Brian Silverman <brian.silverman@bluerivertech.com>
diff --git a/aos/events/event_loop_param_test.cc b/aos/events/event_loop_param_test.cc
index b976d8f..34d1c65 100644
--- a/aos/events/event_loop_param_test.cc
+++ b/aos/events/event_loop_param_test.cc
@@ -1958,6 +1958,57 @@
}
// Tests that a raw watcher and raw fetcher can receive messages from a raw
+// sender without messing up offsets, using the RawSpan overload.
+TEST_P(AbstractEventLoopTest, RawBasicSharedSpan) {
+ auto loop1 = Make();
+ auto loop2 = MakePrimary();
+ auto loop3 = Make();
+
+ const FlatbufferDetachedBuffer<TestMessage> kMessage =
+ JsonToFlatbuffer<TestMessage>("{}");
+
+ std::unique_ptr<aos::RawSender> sender =
+ loop1->MakeRawSender(configuration::GetChannel(
+ loop1->configuration(), "/test", "aos.TestMessage", "", nullptr));
+
+ std::unique_ptr<aos::RawFetcher> fetcher =
+ loop3->MakeRawFetcher(configuration::GetChannel(
+ loop3->configuration(), "/test", "aos.TestMessage", "", nullptr));
+
+ loop2->OnRun([&]() {
+ EXPECT_TRUE(sender->Send(std::make_shared<absl::Span<const uint8_t>>(
+ kMessage.span().data(), kMessage.span().size())));
+ });
+
+ bool happened = false;
+ loop2->MakeRawWatcher(
+ configuration::GetChannel(loop2->configuration(), "/test",
+ "aos.TestMessage", "", nullptr),
+ [this, &kMessage, &fetcher, &happened](const Context &context,
+ const void *message) {
+ happened = true;
+ EXPECT_EQ(
+ kMessage.span(),
+ absl::Span<const uint8_t>(
+ reinterpret_cast<const uint8_t *>(message), context.size));
+ EXPECT_EQ(message, context.data);
+
+ ASSERT_TRUE(fetcher->Fetch());
+
+ EXPECT_EQ(kMessage.span(),
+ absl::Span<const uint8_t>(reinterpret_cast<const uint8_t *>(
+ fetcher->context().data),
+ fetcher->context().size));
+
+ this->Exit();
+ });
+
+ EXPECT_FALSE(happened);
+ Run();
+ EXPECT_TRUE(happened);
+}
+
+// Tests that a raw watcher and raw fetcher can receive messages from a raw
// sender with remote times filled out.
TEST_P(AbstractEventLoopTest, RawRemoteTimes) {
auto loop1 = Make();