Update VirtualSocketServerTest to use a fake clock.
Since this is a test for a fake network, it's only natural that it uses a fake clock as well. This makes the tests much faster, less flaky, and lets them be moved out of "webrtc_nonparallel_tests", since they no longer have a dependency on any "real" thing (sockets, or time) and can be run in parallel as easily as any other tests. As part of this CL, added the fake clock as an argument to VirtualSocketServer's and TestClient's constructors, since these classes have methods that wait synchronously for something to occur, and if the test is using a fake clock, they need to advance it in order to make progress. Lastly, added a DCHECK in Thread::ProcessMessages. If called with a nonzero time while a fake clock is used, it will get stuck in an infinite loop; a DCHECK is easier to notice than an infinite loop. BUG=webrtc:7727, webrtc:2409 Review-Url: https://codereview.webrtc.org/2927413002 Cr-Commit-Position: refs/heads/master@{#18544}
This commit is contained in:
@ -53,6 +53,9 @@ class ClockInterface {
|
||||
// that uses it, eliminating the need for a global variable and this function.
|
||||
ClockInterface* SetClockForTesting(ClockInterface* clock);
|
||||
|
||||
// Returns previously set clock, or nullptr if no custom clock is being used.
|
||||
ClockInterface* GetClockForTesting();
|
||||
|
||||
// Returns the actual system time, even if a clock is set for testing.
|
||||
// Useful for timeouts while using a test clock, or for logging.
|
||||
int64_t SystemTimeNanos();
|
||||
|
||||
Reference in New Issue
Block a user