File tree Expand file tree Collapse file tree 2 files changed +20
-1
lines changed
async-enumerable-dotnet-test Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -322,5 +322,23 @@ public async void RightTaskQueued_Absolute()
322322 Assert . False ( ttr . HasTasks ) ;
323323 }
324324 }
325+
326+ [ Fact ]
327+ public async void Time_Moves_Forward ( )
328+ {
329+ var ttr = new TestTaskRunner ( 1000 ) ;
330+
331+ var t1 = ttr . CreateLambdaTask < long > ( tcs => tcs . SetResult ( ttr . Now ) , 0 , true ) ;
332+ var t2 = ttr . CreateLambdaTask < long > ( tcs => tcs . SetResult ( ttr . Now ) , 500 , true ) ;
333+ var t3 = ttr . CreateLambdaTask < long > ( tcs => tcs . SetResult ( ttr . Now ) , 1000 , true ) ;
334+ var t4 = ttr . CreateLambdaTask < long > ( tcs => tcs . SetResult ( ttr . Now ) , 1500 , true ) ;
335+
336+ ttr . AdvanceTimeBy ( 500 ) ;
337+
338+ Assert . Equal ( 1000 , await t1 ) ;
339+ Assert . Equal ( 1000 , await t2 ) ;
340+ Assert . Equal ( 1000 , await t3 ) ;
341+ Assert . Equal ( 1500 , await t4 ) ;
342+ }
325343 }
326344}
Original file line number Diff line number Diff line change @@ -129,7 +129,8 @@ public void AdvanceTimeBy(long milliseconds)
129129
130130 if ( has )
131131 {
132- Volatile . Write ( ref _now , t . DueTime ) ;
132+ // don't allow time to go back for past-scheduled work
133+ Volatile . Write ( ref _now , Math . Max ( Now , t . DueTime ) ) ;
133134 t . Signal ( ) ;
134135 }
135136 else
You can’t perform that action at this time.
0 commit comments