MCPcopy Create free account
hub / github.com/Haivision/srt / TEST

Function TEST

test/test_timer.cpp:12–41  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10
11
12TEST(CTimer, DISABLED_SleeptoAccuracy)
13{
14 using namespace std;
15 using namespace srt::sync;
16
17 const int num_samples = 1000;
18 array<uint64_t, num_samples> sleeps_us;
19
20 const uint64_t sleep_intervals_us[] = { 1, 5, 10, 50, 100, 250, 500, 1000, 5000, 10000 };
21
22 CTimer timer;
23
24 for (uint64_t interval_us : sleep_intervals_us)
25 {
26 for (int i = 0; i < num_samples; i++)
27 {
28 steady_clock::time_point currtime = steady_clock::now();
29 timer.sleep_until(currtime + microseconds_from(interval_us));
30
31 steady_clock::time_point new_time = steady_clock::now();
32 sleeps_us[i] = count_microseconds(new_time - currtime);
33 }
34
35 cerr << "Target sleep duration: " << interval_us << " us\n";
36 cerr << "avg sleep duration: " << accumulate(sleeps_us.begin(), sleeps_us.end(), (uint64_t) 0) / num_samples << " us\n";
37 cerr << "min sleep duration: " << *min_element(sleeps_us.begin(), sleeps_us.end()) << " us\n";
38 cerr << "max sleep duration: " << *max_element(sleeps_us.begin(), sleeps_us.end()) << " us\n";
39 cerr << "\n";
40 }
41}
42
43

Callers

nothing calls this directly

Calls 5

microseconds_fromFunction · 0.85
count_microsecondsFunction · 0.85
sleep_untilMethod · 0.80
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected