[test] Nerf WritesPerRpcTest due to timeout

pull/36612/head
AJ Heller 6 months ago
parent 15850972dd
commit 0ba8af4167
  1. 7
      test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h
  2. 23
      test/cpp/performance/writes_per_rpc_test.cc

@ -29,6 +29,7 @@
#include "absl/base/thread_annotations.h"
#include "absl/functional/any_invocable.h"
#include "absl/log/log.h"
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/types/optional.h"
@ -314,8 +315,10 @@ class ThreadedFuzzingEventEngine : public FuzzingEventEngine {
fuzzing_event_engine::Actions()),
main_([this, max_time]() {
while (!done_.load()) {
absl::SleepFor(absl::Milliseconds(
grpc_event_engine::experimental::Milliseconds(max_time)));
if (max_time > Duration::zero()) {
absl::SleepFor(absl::Milliseconds(
grpc_event_engine::experimental::Milliseconds(max_time)));
}
Tick();
}
}) {}

@ -61,7 +61,7 @@ using grpc_event_engine::experimental::URIToResolvedAddress;
void* tag(intptr_t x) { return reinterpret_cast<void*>(x); }
constexpr int kIterations = 10000;
constexpr int kIterations = 1000;
constexpr int kSnapshotEvery = kIterations / 10;
} // namespace
@ -216,17 +216,20 @@ static double UnaryPingPong(ThreadedFuzzingEventEngine* fuzzing_engine,
EchoTestService::NewStub(fixture->channel()));
auto baseline = grpc_core::global_stats().Collect();
auto snapshot = grpc_core::global_stats().Collect();
auto last_snapshot = absl::Now();
for (int iteration = 0; iteration < kIterations; iteration++) {
if (iteration % kSnapshotEvery == 0) {
if (iteration > 0 && iteration % kSnapshotEvery == 0) {
auto new_snapshot = grpc_core::global_stats().Collect();
auto diff = new_snapshot->Diff(*snapshot);
gpr_log(GPR_DEBUG,
" SNAPSHOT: UnaryPingPong(%d, %d): writes_per_iteration=%0.3f "
"(total=%lu, i=%d) pings=%lu",
request_size, response_size,
static_cast<double>(diff->syscall_write) /
static_cast<double>(kSnapshotEvery),
diff->syscall_write, iteration, diff->http2_pings_sent);
auto now = absl::Now();
LOG(ERROR) << " SNAPSHOT: UnaryPingPong(" << request_size << ", "
<< response_size << "): writes_per_iteration="
<< static_cast<double>(diff->syscall_write) /
static_cast<double>(kSnapshotEvery)
<< " (total=" << diff->syscall_write << ", i=" << iteration
<< ") pings=" << diff->http2_pings_sent
<< "; duration=" << now - last_snapshot;
last_snapshot = now;
snapshot = std::move(new_snapshot);
}
recv_response.Clear();
@ -238,7 +241,7 @@ static double UnaryPingPong(ThreadedFuzzingEventEngine* fuzzing_engine,
response_reader->Finish(&recv_response, &recv_status, tag(4));
CHECK(fixture->cq()->Next(&t, &ok));
CHECK(ok);
CHECK(t == tag(0) || t == tag(1));
CHECK(t == tag(0) || t == tag(1)) << "Found unexpected tag " << t;
intptr_t slot = reinterpret_cast<intptr_t>(t);
ServerEnv* senv = server_env[slot];
senv->response_writer.Finish(send_response, Status::OK, tag(3));

Loading…
Cancel
Save