Skip to content

Commit 5d0f53e

Browse files
committed
Refactor test cases to replace cancellable tasks with background tasks for improved performance
1 parent 2b2d902 commit 5d0f53e

File tree

8 files changed

+23
-14
lines changed

8 files changed

+23
-14
lines changed

src/IcedTasks/AutoOpens.fs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@ module AutoOpens =
1717
[<assembly: AutoOpen("IcedTasks.ValueTasksUnit")>]
1818
[<assembly: AutoOpen("IcedTasks.ColdTasks")>]
1919
[<assembly: AutoOpen("IcedTasks.CancellableTaskBase")>]
20+
[<assembly: AutoOpen("IcedTasks.CancellableValueTasks")>]
2021
#if NET6_0_OR_GREATER
2122
[<assembly: AutoOpen("IcedTasks.CancellablePoolingValueTasks")>]
2223
#endif
23-
[<assembly: AutoOpen("IcedTasks.CancellableValueTasks")>]
24-
[<assembly: AutoOpen("IcedTasks.CancellablePoolingValueTasks")>]
2524
[<assembly: AutoOpen("IcedTasks.CancellableTasks")>]
2625
#if NET10_0_OR_GREATER
2726
[<assembly: AutoOpen("IcedTasks.TaskBase_Net10")>]

tests/IcedTasks.Tests/CancellablePoolingValueTaskTests.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,7 @@ module CancellablePoolingValueTaskTests =
10451045
let parallelList = ResizeArray<_>()
10461046

10471047
let fakeWork id yieldTimes (l: ResizeArray<_>) =
1048-
cancellablePoolingValueTask {
1048+
backgroundTask {
10491049
lock l (fun () -> l.Add(id))
10501050
do! Task.yieldMany yieldTimes
10511051
let dt = DateTimeOffset.UtcNow

tests/IcedTasks.Tests/CancellableTaskTests.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1012,7 +1012,7 @@ module CancellableTaskTests =
10121012
let parallelList = ResizeArray<_>()
10131013

10141014
let fakeWork id yieldTimes (l: ResizeArray<_>) =
1015-
cancellableTask {
1015+
backgroundTask {
10161016
lock l (fun () -> l.Add(id))
10171017
do! Task.yieldMany yieldTimes
10181018
let dt = DateTimeOffset.UtcNow

tests/IcedTasks.Tests/CancellableValueTaskTests.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1047,7 +1047,7 @@ module CancellableValueTaskTests =
10471047
let parallelList = ResizeArray<_>()
10481048

10491049
let fakeWork id yieldTimes (l: ResizeArray<_>) =
1050-
cancellableValueTask {
1050+
backgroundTask {
10511051
lock l (fun () -> l.Add(id))
10521052
do! Task.yieldMany yieldTimes
10531053
let dt = DateTimeOffset.UtcNow

tests/IcedTasks.Tests/Expect.fs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ module Task =
99
/// We run it max times to ensure it really gets async yielded.
1010
/// Alternative would be Task.Delay but can be slow.
1111
let yieldMany max =
12-
task {
13-
for _ = 0 to max do
14-
do! Task.Yield()
15-
}
12+
Task.Run<unit>(fun _ ->
13+
task {
14+
for _ = 0 to max do
15+
do! Task.Yield()
16+
}
17+
)
1618

1719
module TestHelpers =
1820
open System.Threading
@@ -73,6 +75,12 @@ module Expecto =
7375
module Expect =
7476
open Expecto
7577

78+
let inline isAssignableFrom<'t> (e: exn) =
79+
let t1 = e.GetType()
80+
let t2 = typeof<'t>
81+
82+
t2.IsAssignableFrom t1
83+
7684
/// Expects the passed function to throw `'texn`.
7785
[<RequiresExplicitTypeArguments>]
7886
let throwsTAsync<'texn when 'texn :> exn> f message =
@@ -86,14 +94,16 @@ module Expect =
8694
return ValueSome e
8795
}
8896

97+
8998
match thrown with
90-
| ValueSome e when not (e.GetType().IsAssignableFrom typeof<'texn>) ->
99+
| ValueSome e when isAssignableFrom<'texn> e -> ()
100+
| ValueSome e ->
91101
failtestf
92102
"%s. Expected f to throw an exn of type %s, but one of type %s was thrown."
93103
message
94104
(typeof<'texn>.FullName)
95105
(e.GetType().FullName)
96-
| ValueSome _ -> ()
106+
97107
| _ -> failtestf "%s. Expected f to throw." message
98108
}
99109

tests/IcedTasks.Tests/PoolingValueTaskTests.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,7 @@ module PoolingValueTaskTests =
689689
let parallelList = ResizeArray<_>()
690690

691691
let fakeWork id yieldTimes (l: ResizeArray<_>) =
692-
poolingValueTask {
692+
backgroundTask {
693693
lock l (fun () -> l.Add(id))
694694
do! Task.yieldMany yieldTimes
695695
let dt = DateTimeOffset.UtcNow

tests/IcedTasks.Tests/TaskTests.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,7 @@ module TaskTests =
694694

695695

696696
let fakeWork id yieldTimes (l: ResizeArray<_>) =
697-
task {
697+
backgroundTask {
698698
lock l (fun () -> l.Add(id))
699699
do! Task.yieldMany yieldTimes
700700
let dt = DateTimeOffset.UtcNow

tests/IcedTasks.Tests/ValueTaskTests.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ module ValueTaskTests =
691691

692692

693693
let fakeWork id yieldTimes (l: ResizeArray<_>) =
694-
valueTask {
694+
backgroundTask {
695695
lock l (fun () -> l.Add(id))
696696
do! Task.yieldMany yieldTimes
697697
let dt = DateTimeOffset.UtcNow

0 commit comments

Comments
 (0)