MCPcopy Create free account
hub / github.com/apache/brpc / TEST

Function TEST

test/brpc_timeout_concurrency_limiter_unittest.cpp:31–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29} // namespace brpc
30
31TEST(TimeoutConcurrencyLimiterTest, AddSample) {
32 {
33 brpc::policy::FLAGS_timeout_cl_sample_window_size_ms = 10;
34 brpc::policy::FLAGS_timeout_cl_min_sample_count = 5;
35 brpc::policy::FLAGS_timeout_cl_max_sample_count = 10;
36
37 brpc::policy::TimeoutConcurrencyLimiter limiter;
38 limiter.AddSample(0, 50, butil::cpuwide_time_us());
39 limiter.AddSample(0, 50, butil::cpuwide_time_us());
40 limiter.AddSample(0, 50, butil::cpuwide_time_us());
41 limiter.AddSample(0, 50, butil::cpuwide_time_us());
42 bthread_usleep(10 * 1000);
43 limiter.AddSample(0, 50, butil::cpuwide_time_us());
44 ASSERT_EQ(limiter._sw.succ_count, 0);
45 ASSERT_EQ(limiter._sw.failed_count, 0);
46
47 limiter.AddSample(0, 50, butil::cpuwide_time_us());
48 limiter.AddSample(0, 50, butil::cpuwide_time_us());
49 limiter.AddSample(0, 50, butil::cpuwide_time_us());
50 limiter.AddSample(0, 50, butil::cpuwide_time_us());
51 limiter.AddSample(0, 50, butil::cpuwide_time_us());
52 bthread_usleep(10 * 1000);
53 limiter.AddSample(0, 50, butil::cpuwide_time_us());
54 ASSERT_EQ(limiter._sw.succ_count, 0);
55 ASSERT_EQ(limiter._sw.failed_count, 0);
56 ASSERT_EQ(limiter._avg_latency_us, 50);
57
58 limiter.AddSample(0, 50, butil::cpuwide_time_us());
59 limiter.AddSample(0, 50, butil::cpuwide_time_us());
60 limiter.AddSample(0, 50, butil::cpuwide_time_us());
61 limiter.AddSample(0, 50, butil::cpuwide_time_us());
62 limiter.AddSample(0, 50, butil::cpuwide_time_us());
63 limiter.AddSample(0, 50, butil::cpuwide_time_us());
64 limiter.AddSample(0, 50, butil::cpuwide_time_us());
65 limiter.AddSample(0, 50, butil::cpuwide_time_us());
66 limiter.AddSample(0, 50, butil::cpuwide_time_us());
67 limiter.AddSample(0, 50, butil::cpuwide_time_us());
68 ASSERT_EQ(limiter._sw.succ_count, 0);
69 ASSERT_EQ(limiter._sw.failed_count, 0);
70 ASSERT_EQ(limiter._avg_latency_us, 50);
71
72 limiter.AddSample(0, 50, butil::cpuwide_time_us());
73 limiter.AddSample(0, 50, butil::cpuwide_time_us());
74 limiter.AddSample(0, 50, butil::cpuwide_time_us());
75 limiter.AddSample(0, 50, butil::cpuwide_time_us());
76 limiter.AddSample(0, 50, butil::cpuwide_time_us());
77 limiter.AddSample(0, 50, butil::cpuwide_time_us());
78 ASSERT_EQ(limiter._sw.succ_count, 6);
79 ASSERT_EQ(limiter._sw.failed_count, 0);
80
81 limiter.ResetSampleWindow(butil::cpuwide_time_us());
82 limiter.AddSample(0, 50, butil::cpuwide_time_us());
83 limiter.AddSample(0, 50, butil::cpuwide_time_us());
84 limiter.AddSample(0, 50, butil::cpuwide_time_us());
85 limiter.AddSample(1, 50, butil::cpuwide_time_us());
86 limiter.AddSample(1, 50, butil::cpuwide_time_us());
87 limiter.AddSample(1, 50, butil::cpuwide_time_us());
88 ASSERT_EQ(limiter._sw.succ_count, 3);

Callers

nothing calls this directly

Calls 7

cpuwide_time_usFunction · 0.85
bthread_usleepFunction · 0.85
AddSampleMethod · 0.45
ResetSampleWindowMethod · 0.45
OnRespondedMethod · 0.45
typeMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected