test: s/WaitForFlush/ExpectFlush/
Unlike the name suggests, WaitForFlush does NOT wait,
nor block. It simply adds a test expectation and attaches
a reply callback to it.
I noticed this while writing a test recently for
TracingServiceImpl.
Change-Id: I0a42c7de786541102ef8b65df72bf9de8b681e48
diff --git a/src/tracing/core/tracing_service_impl_unittest.cc b/src/tracing/core/tracing_service_impl_unittest.cc
index 5f67cee..7583d33 100644
--- a/src/tracing/core/tracing_service_impl_unittest.cc
+++ b/src/tracing/core/tracing_service_impl_unittest.cc
@@ -432,7 +432,7 @@
producer->WaitForDataSourceStart("ds_1");
auto writer1 = producer->CreateTraceWriter("ds_1");
- producer->WaitForFlush(writer1.get());
+ producer->ExpectFlush(writer1.get());
producer->WaitForDataSourceStop("ds_1");
consumer->WaitForTracingDisabled();
@@ -598,7 +598,7 @@
producer->WaitForDataSourceStart("ds_1");
auto writer = producer->CreateTraceWriter("ds_1");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
producer->WaitForDataSourceStop("ds_1");
consumer->WaitForTracingDisabled();
@@ -689,7 +689,7 @@
producer->WaitForDataSourceStart("ds_1");
auto writer = producer->CreateTraceWriter("ds_1");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
producer->WaitForDataSourceStop("ds_1");
consumer->WaitForTracingDisabled();
@@ -869,7 +869,7 @@
producer->WaitForDataSourceStart("ds_1");
auto writer1 = producer->CreateTraceWriter("ds_1");
- producer->WaitForFlush(writer1.get());
+ producer->ExpectFlush(writer1.get());
producer->WaitForDataSourceStop("ds_1");
consumer->WaitForTracingDisabled();
@@ -942,7 +942,7 @@
producer->endpoint()->ActivateTriggers(req);
auto writer1 = producer->CreateTraceWriter("ds_1");
- producer->WaitForFlush(writer1.get());
+ producer->ExpectFlush(writer1.get());
producer->WaitForDataSourceStop("ds_1");
consumer->WaitForTracingDisabled();
@@ -1043,7 +1043,7 @@
producer->endpoint()->ActivateTriggers({"trigger_name_2"});
auto writer1 = producer->CreateTraceWriter("ds_1");
- producer->WaitForFlush(writer1.get());
+ producer->ExpectFlush(writer1.get());
producer->WaitForDataSourceStop("ds_1");
consumer->WaitForTracingDisabled();
@@ -1096,7 +1096,7 @@
EXPECT_THAT(consumer->ReadBuffers(), IsEmpty());
auto writer = producer->CreateTraceWriter("ds_1");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_EQ(0u, tracing_session()->received_triggers.size());
@@ -1167,7 +1167,7 @@
payload.append(std::to_string(i));
tp->set_for_testing()->set_str(payload.c_str(), payload.size());
}
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_EQ(1u, tracing_session()->received_triggers.size());
EXPECT_EQ("trigger_name",
@@ -1244,7 +1244,7 @@
producer->endpoint()->ActivateTriggers(req);
auto writer = producer->CreateTraceWriter("ds_1");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_EQ(2u, tracing_session()->received_triggers.size());
EXPECT_EQ("trigger_name",
@@ -1299,7 +1299,7 @@
tracing_session()->received_triggers[0].trigger_name);
auto writer = producer->CreateTraceWriter("data_source_a");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
producer->WaitForDataSourceStop("data_source_a");
consumer->WaitForTracingDisabled();
@@ -1382,7 +1382,7 @@
tracing_session()->received_triggers[0].trigger_name);
auto writer = producer->CreateTraceWriter("data_source_a");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
producer->WaitForDataSourceStop("data_source_a");
consumer->WaitForTracingDisabled();
@@ -1419,7 +1419,7 @@
tracing_session()->received_triggers[0].trigger_name);
auto writer = producer->CreateTraceWriter("data_source_b");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
producer->WaitForDataSourceStop("data_source_b");
consumer->WaitForTracingDisabled();
@@ -1470,7 +1470,7 @@
producer->endpoint()->ActivateTriggers(req);
auto writer = producer->CreateTraceWriter("data_source");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_EQ(1u, tracing_session()->received_triggers.size());
EXPECT_EQ("trigger_name",
@@ -1543,7 +1543,7 @@
.WillOnce(InvokeWithoutArgs(clone_done));
clone_cons->CloneSession(orig_tsid);
// CloneSession() will implicitly issue a flush. Linearize with that.
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
task_runner.RunUntilCheckpoint(checkpoint_name);
// Read the cloned session and ensure it only contains the last trigger
@@ -2111,7 +2111,7 @@
}));
consumer2->CloneSession(1);
// CloneSession() will implicitly issue a flush. Linearize with that.
- producer->WaitForFlush(std::vector<TraceWriter*>{writer.get()});
+ producer->ExpectFlush(std::vector<TraceWriter*>{writer.get()});
task_runner.RunUntilCheckpoint("clone_done");
// Delete the initial tracing session.
@@ -2454,7 +2454,7 @@
}
auto flush_request = consumer->Flush();
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_TRUE(flush_request.WaitForReply());
consumer->DisableTracing();
@@ -2492,7 +2492,7 @@
tp->set_for_testing()->set_str("payload");
}
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
producer->WaitForDataSourceStop("data_source");
consumer->WaitForTracingDisabled();
@@ -2542,10 +2542,10 @@
// Make the producer reply only to the 3rd flush request.
InSequence seq;
- producer->WaitForFlush(nullptr, /*reply=*/false); // Do NOT reply to flush 1.
- producer->WaitForFlush(nullptr, /*reply=*/false); // Do NOT reply to flush 2.
- producer->WaitForFlush(writer.get()); // Reply only to flush 3.
- producer->WaitForFlush(nullptr, /*reply=*/false); // Do NOT reply to flush 4.
+ producer->ExpectFlush(nullptr, /*reply=*/false); // Do NOT reply to flush 1.
+ producer->ExpectFlush(nullptr, /*reply=*/false); // Do NOT reply to flush 2.
+ producer->ExpectFlush(writer.get()); // Reply only to flush 3.
+ producer->ExpectFlush(nullptr, /*reply=*/false); // Do NOT reply to flush 4.
// Even if the producer explicily replied only to flush ID == 3, all the
// previous flushed < 3 should be implicitly acked.
@@ -2758,7 +2758,7 @@
std::unique_ptr<TraceWriter> writer =
producer->CreateTraceWriter("ds_wont_ack");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
producer->WaitForDataSourceStop("ds_will_ack_1");
producer->WaitForDataSourceStop("ds_wont_ack");
@@ -2838,7 +2838,7 @@
std::unique_ptr<TraceWriter> writer =
producer->CreateTraceWriter("data_source");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
producer->WaitForDataSourceStop("data_source");
consumer->WaitForTracingDisabled();
@@ -2893,10 +2893,10 @@
last_session_id = ds1->session_id;
auto writer1 = producer1->CreateTraceWriter("ds_1A");
- producer1->WaitForFlush(writer1.get());
+ producer1->ExpectFlush(writer1.get());
auto writer2 = producer2->CreateTraceWriter("ds_2A");
- producer2->WaitForFlush(writer2.get());
+ producer2->ExpectFlush(writer2.get());
producer1->WaitForDataSourceStop("ds_1A");
producer1->WaitForDataSourceStop("ds_1B");
@@ -3017,7 +3017,7 @@
producer->WaitForDataSourceStart("ds_1");
auto writer = producer->CreateTraceWriter("ds_1");
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
producer->WaitForDataSourceStop("ds_1");
consumer->WaitForTracingDisabled();
@@ -3070,8 +3070,8 @@
}
auto flush_request = consumer->Flush();
- producer1->WaitForFlush({writer1a.get(), writer1b.get()});
- producer2->WaitForFlush(writer2a.get());
+ producer1->ExpectFlush({writer1a.get(), writer1b.get()});
+ producer2->ExpectFlush(writer2a.get());
ASSERT_TRUE(flush_request.WaitForReply());
consumer->DisableTracing();
@@ -3246,7 +3246,7 @@
}
auto flush_request = consumer->Flush();
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_TRUE(flush_request.WaitForReply());
// Try to write to the wrong buffer.
@@ -3258,7 +3258,7 @@
}
flush_request = consumer->Flush();
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_TRUE(flush_request.WaitForReply());
consumer->DisableTracing();
@@ -3322,7 +3322,7 @@
}
auto flush_request = consumer->Flush();
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_TRUE(flush_request.WaitForReply());
// Destroying the writer should unregister it.
@@ -3377,7 +3377,7 @@
// Flush but don't actually flush the chunk from TraceWriter.
auto flush_request = consumer->Flush();
- producer->WaitForFlush(nullptr, /*reply=*/true);
+ producer->ExpectFlush(nullptr, /*reply=*/true);
ASSERT_TRUE(flush_request.WaitForReply());
// Chunk with the packets should have been scraped. The service can't know
@@ -3400,7 +3400,7 @@
// Don't reply to flush, causing a timeout. This should scrape again.
flush_request = consumer->Flush(/*timeout=*/100);
- producer->WaitForFlush(nullptr, /*reply=*/false);
+ producer->ExpectFlush(nullptr, /*reply=*/false);
ASSERT_FALSE(flush_request.WaitForReply());
// Chunk with the packets should have been scraped again, overriding the
@@ -3700,7 +3700,7 @@
writer2->Flush();
auto flush_request = consumer->Flush();
- producer->WaitForFlush({writer1.get(), writer2.get()});
+ producer->ExpectFlush({writer1.get(), writer2.get()});
ASSERT_TRUE(flush_request.WaitForReply());
writer1.reset();
@@ -4159,7 +4159,7 @@
}
auto flush_request = consumer->Flush();
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_TRUE(flush_request.WaitForReply());
packets = consumer->ReadBuffers();
@@ -4208,7 +4208,7 @@
}
auto flush_request = consumer->Flush();
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_TRUE(flush_request.WaitForReply());
{
@@ -4217,7 +4217,7 @@
}
flush_request = consumer->Flush();
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_TRUE(flush_request.WaitForReply());
auto packets = consumer->ReadBuffers();
@@ -4461,7 +4461,7 @@
}
auto flush_request = consumer->Flush();
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_TRUE(flush_request.WaitForReply());
consumer->DisableTracing();
@@ -4620,7 +4620,7 @@
}));
consumer2->CloneSession(1);
// CloneSession() will implicitly issue a flush. Linearize with that.
- producer->WaitForFlush({writers[0].get(), writers[1].get()});
+ producer->ExpectFlush({writers[0].get(), writers[1].get()});
task_runner.RunUntilCheckpoint("clone_done");
// Overwrite the ring buffer of the original session to check that clone
@@ -4632,7 +4632,7 @@
}
auto flush_request = consumer->Flush();
- producer->WaitForFlush({writers[0].get(), writers[1].get()});
+ producer->ExpectFlush({writers[0].get(), writers[1].get()});
ASSERT_TRUE(flush_request.WaitForReply());
// Delete the initial tracing session.
@@ -4802,7 +4802,7 @@
}
auto flush_request = consumer->Flush();
- producer->WaitForFlush(writer.get());
+ producer->ExpectFlush(writer.get());
ASSERT_TRUE(flush_request.WaitForReply());
const DataSourceInstanceID id1 = producer->GetDataSourceInstanceId("ds_1");
@@ -4878,7 +4878,7 @@
}));
consumer2->CloneSession(1);
// CloneSession() will implicitly issue a flush. Linearize with that.
- producer->WaitForFlush(std::vector<TraceWriter*>{writer.get()});
+ producer->ExpectFlush(std::vector<TraceWriter*>{writer.get()});
task_runner.RunUntilCheckpoint("clone_done");
const DataSourceInstanceID id1 = producer->GetDataSourceInstanceId("ds_1");
diff --git a/src/tracing/test/mock_producer.cc b/src/tracing/test/mock_producer.cc
index ff9f9b9..84ca4ee 100644
--- a/src/tracing/test/mock_producer.cc
+++ b/src/tracing/test/mock_producer.cc
@@ -192,15 +192,15 @@
return service_endpoint_->CreateTraceWriter(buf_id);
}
-void MockProducer::WaitForFlush(TraceWriter* writer_to_flush, bool reply) {
+void MockProducer::ExpectFlush(TraceWriter* writer_to_flush, bool reply) {
std::vector<TraceWriter*> writers;
if (writer_to_flush)
writers.push_back(writer_to_flush);
- WaitForFlush(writers, reply);
+ ExpectFlush(writers, reply);
}
-void MockProducer::WaitForFlush(std::vector<TraceWriter*> writers_to_flush,
- bool reply) {
+void MockProducer::ExpectFlush(std::vector<TraceWriter*> writers_to_flush,
+ bool reply) {
auto& expected_call = EXPECT_CALL(*this, Flush(_, _, _));
expected_call.WillOnce(Invoke(
[this, writers_to_flush, reply](FlushRequestID flush_req_id,
diff --git a/src/tracing/test/mock_producer.h b/src/tracing/test/mock_producer.h
index ff2c45d..932bd9c 100644
--- a/src/tracing/test/mock_producer.h
+++ b/src/tracing/test/mock_producer.h
@@ -76,10 +76,10 @@
// Expect a flush. Flushes |writer_to_flush| if non-null. If |reply| is true,
// replies to the flush request, otherwise ignores it and doesn't reply.
- void WaitForFlush(TraceWriter* writer_to_flush, bool reply = true);
+ void ExpectFlush(TraceWriter* writer_to_flush, bool reply = true);
// Same as above, but with a vector of writers.
- void WaitForFlush(std::vector<TraceWriter*> writers_to_flush,
- bool reply = true);
+ void ExpectFlush(std::vector<TraceWriter*> writers_to_flush,
+ bool reply = true);
TracingService::ProducerEndpoint* endpoint() {
return service_endpoint_.get();