@@ -113,8 +113,10 @@ template CAddress::SerParams ConsumeDeserializationParams(FuzzedDataProvider&) n
113
113
FuzzedSock::FuzzedSock (FuzzedDataProvider& fuzzed_data_provider)
114
114
: Sock{fuzzed_data_provider.ConsumeIntegralInRange <SOCKET>(INVALID_SOCKET - 1 , INVALID_SOCKET)},
115
115
m_fuzzed_data_provider{fuzzed_data_provider},
116
- m_selectable{fuzzed_data_provider.ConsumeBool ()}
116
+ m_selectable{fuzzed_data_provider.ConsumeBool ()},
117
+ m_time{MockableSteadyClock::INITIAL_MOCK_TIME}
117
118
{
119
+ ElapseTime (std::chrono::seconds (0 )); // start mocking the steady clock.
118
120
}
119
121
120
122
FuzzedSock::~FuzzedSock ()
@@ -126,6 +128,12 @@ FuzzedSock::~FuzzedSock()
126
128
m_socket = INVALID_SOCKET;
127
129
}
128
130
131
+ void FuzzedSock::ElapseTime (std::chrono::milliseconds duration) const
132
+ {
133
+ m_time += duration;
134
+ MockableSteadyClock::SetMockTime (m_time);
135
+ }
136
+
129
137
FuzzedSock& FuzzedSock::operator =(Sock&& other)
130
138
{
131
139
assert (false && " Move of Sock into FuzzedSock not allowed." );
@@ -388,6 +396,7 @@ bool FuzzedSock::Wait(std::chrono::milliseconds timeout, Event requested, Event*
388
396
// FuzzedDataProvider runs out of data.
389
397
*occurred = m_fuzzed_data_provider.ConsumeBool () ? 0 : requested;
390
398
}
399
+ ElapseTime (timeout);
391
400
return true ;
392
401
}
393
402
@@ -400,6 +409,7 @@ bool FuzzedSock::WaitMany(std::chrono::milliseconds timeout, EventsPerSock& even
400
409
// FuzzedDataProvider runs out of data.
401
410
events.occurred = m_fuzzed_data_provider.ConsumeBool () ? 0 : events.requested ;
402
411
}
412
+ ElapseTime (timeout);
403
413
return true ;
404
414
}
405
415
0 commit comments