1
1
// RUN: %empty-directory(%t)
2
2
3
- // RUN: %target-build-swift %s -Xfrontend -disable-availability-checking -parse-as-library -o %t/async_task_priority
4
- // RUN: %target-codesign %t/async_task_priority
5
- // RUN: %target-run %t/async_task_priority
3
+ // RUN: %target-build-swift %s -Xfrontend -disable-availability-checking -parse-as-library -o %t/async_task_escalate_priority
4
+ // RUN: %target-codesign %t/async_task_escalate_priority
5
+ // RUN: %target-run %t/async_task_escalate_priority
6
6
7
7
// REQUIRES: VENDOR=apple
8
8
// REQUIRES: executable_test
24
24
25
25
import Darwin
26
26
@preconcurrency import Dispatch
27
- import StdlibUnittest
27
+
28
+ func expectEqual( _ l: TaskPriority , _ r: TaskPriority ,
29
+ function: String = #function, file: String = #fileID, line: UInt = #line) {
30
+ precondition ( l == r, " Priority [ \( l) ] did not equal \( r) @ \( file) : \( line) ( \( function) ) " )
31
+ }
28
32
29
33
func loopUntil( priority: TaskPriority ) async {
30
34
var loops = 10
@@ -77,8 +81,7 @@ func testNestedTaskPriority(basePri: TaskPriority, curPri: TaskPriority) async {
77
81
78
82
let top_level = Task . detached { /* To detach from main actor when running work */
79
83
80
- let tests = TestSuite ( " Task Priority escalation " )
81
- tests. test ( " Basic task_escalate when task is running " ) {
84
+ func basicTask_escalateWhenTaskIsRunning( ) async {
82
85
let sem1 = DispatchSemaphore ( value: 0 )
83
86
let sem2 = DispatchSemaphore ( value: 0 )
84
87
let task = Task ( priority: . background) {
@@ -97,8 +100,9 @@ func testNestedTaskPriority(basePri: TaskPriority, curPri: TaskPriority) async {
97
100
Task . escalatePriority ( task, to: . default)
98
101
sem2. wait ( )
99
102
}
103
+ await basicTask_escalateWhenTaskIsRunning ( )
100
104
101
- tests . test ( " Trigger task escalation handler " ) {
105
+ func triggerTaskEscalationHandler ( ) {
102
106
let sem1 = DispatchSemaphore ( value: 0 )
103
107
let sem2 = DispatchSemaphore ( value: 0 )
104
108
let semEscalated = DispatchSemaphore ( value: 0 )
@@ -134,8 +138,9 @@ func testNestedTaskPriority(basePri: TaskPriority, curPri: TaskPriority) async {
134
138
semEscalated. wait ( )
135
139
sem2. wait ( )
136
140
}
141
+ await triggerTaskEscalationHandler ( )
137
142
138
- tests . test ( " Trigger twice: Escalate to medium, and then again to high " ) {
143
+ func triggerTwice_escalateToMediumAndThenAgainToHigh ( ) {
139
144
let sem1 = DispatchSemaphore ( value: 0 )
140
145
let semEscalatedMedium = DispatchSemaphore ( value: 0 )
141
146
let semEscalatedHigh = DispatchSemaphore ( value: 0 )
@@ -176,8 +181,9 @@ func testNestedTaskPriority(basePri: TaskPriority, curPri: TaskPriority) async {
176
181
// we got escalated twice
177
182
semEscalatedInHandler. wait ( )
178
183
}
184
+ await triggerTwice_escalateToMediumAndThenAgainToHigh ( )
179
185
180
- tests . test ( " Don't trigger in already escalated task " ) {
186
+ func dontTriggerInAlreadyEscalatedTask ( ) {
181
187
let sem1 = DispatchSemaphore ( value: 0 )
182
188
let sem2 = DispatchSemaphore ( value: 0 )
183
189
let semEscalated = DispatchSemaphore ( value: 0 )
@@ -219,8 +225,7 @@ func testNestedTaskPriority(basePri: TaskPriority, curPri: TaskPriority) async {
219
225
semEscalated. wait ( )
220
226
sem2. wait ( )
221
227
}
222
-
223
- await runAllTestsAsync ( )
228
+ await dontTriggerInAlreadyEscalatedTask ( )
224
229
}
225
230
226
231
await top_level. value
0 commit comments