9
9
// UNSUPPORTED: back_deployment_runtime
10
10
// UNSUPPORTED: back_deploy_concurrency
11
11
12
- // This test is disabled because it seems to require dedicated CPU access:
13
- // REQUIRES: rdar94451729
14
-
15
12
import _Concurrency
16
13
import StdlibUnittest
17
14
18
15
var tests = TestSuite ( " Time " )
19
16
20
17
@main struct Main {
21
18
static func main( ) async {
22
- tests. test ( " ContinuousClock sleep " ) {
19
+ tests. test ( " ContinuousClock sleep " )
20
+ . skip ( . always( " failed despite increased timeout (rdar://94451729) " ) )
21
+ . code {
23
22
let clock = ContinuousClock ( )
24
23
let elapsed = await clock. measure {
25
24
try ! await clock. sleep ( until: . now + . milliseconds( 100 ) )
@@ -29,7 +28,9 @@ var tests = TestSuite("Time")
29
28
expectLT ( elapsed, . milliseconds( 1000 ) )
30
29
}
31
30
32
- tests. test ( " ContinuousClock sleep with tolerance " ) {
31
+ tests. test ( " ContinuousClock sleep with tolerance " )
32
+ . skip ( . always( " failed despite increased timeout (rdar://94451729) " ) )
33
+ . code {
33
34
let clock = ContinuousClock ( )
34
35
let elapsed = await clock. measure {
35
36
try ! await clock. sleep ( until: . now + . milliseconds( 100 ) , tolerance: . milliseconds( 100 ) )
@@ -39,15 +40,19 @@ var tests = TestSuite("Time")
39
40
expectLT ( elapsed, . milliseconds( 2000 ) )
40
41
}
41
42
42
- tests. test ( " ContinuousClock sleep longer " ) {
43
+ tests. test ( " ContinuousClock sleep longer " )
44
+ . skip ( . always( " failed despite increased timeout (rdar://94451729) " ) )
45
+ . code {
43
46
let elapsed = await ContinuousClock ( ) . measure {
44
47
try ! await Task . sleep ( until: . now + . seconds( 1 ) , clock: . continuous)
45
48
}
46
49
expectGT ( elapsed, . seconds( 1 ) - . milliseconds( 90 ) )
47
50
expectLT ( elapsed, . seconds( 1 ) + . milliseconds( 1000 ) )
48
51
}
49
52
50
- tests. test ( " SuspendingClock sleep " ) {
53
+ tests. test ( " SuspendingClock sleep " )
54
+ . skip ( . always( " failed despite increased timeout (rdar://94451729) " ) )
55
+ . code {
51
56
let clock = SuspendingClock ( )
52
57
let elapsed = await clock. measure {
53
58
try ! await clock. sleep ( until: . now + . milliseconds( 100 ) )
@@ -57,7 +62,9 @@ var tests = TestSuite("Time")
57
62
expectLT ( elapsed, . milliseconds( 1000 ) )
58
63
}
59
64
60
- tests. test ( " SuspendingClock sleep with tolerance " ) {
65
+ tests. test ( " SuspendingClock sleep with tolerance " )
66
+ . skip ( . always( " failed despite increased timeout (rdar://94451729) " ) )
67
+ . code {
61
68
let clock = SuspendingClock ( )
62
69
let elapsed = await clock. measure {
63
70
try ! await clock. sleep ( until: . now + . milliseconds( 100 ) , tolerance: . milliseconds( 100 ) )
@@ -67,7 +74,9 @@ var tests = TestSuite("Time")
67
74
expectLT ( elapsed, . milliseconds( 2000 ) )
68
75
}
69
76
70
- tests. test ( " SuspendingClock sleep longer " ) {
77
+ tests. test ( " SuspendingClock sleep longer " )
78
+ . skip ( . always( " failed despite increased timeout (rdar://94451729) " ) )
79
+ . code {
71
80
let elapsed = await SuspendingClock ( ) . measure {
72
81
try ! await Task . sleep ( until: . now + . seconds( 1 ) , clock: . suspending)
73
82
}
@@ -110,6 +119,44 @@ var tests = TestSuite("Time")
110
119
expectEqual ( twoSeconds, . seconds( 2 ) )
111
120
}
112
121
122
+ tests. test ( " Duration components/whole second increments " ) {
123
+ for i in 0 ..< 1_000_000 {
124
+ let d = Duration . seconds ( i)
125
+ let comps = d. components
126
+ expectEqual ( comps. seconds, Int64 ( i) )
127
+ expectEqual ( comps. attoseconds, 0 )
128
+ }
129
+ }
130
+
131
+ tests. test ( " Duration components/1ms increments " ) {
132
+ for i in 0 ..< 1_000_000 {
133
+ let d = Duration . milliseconds ( i)
134
+ let comps = d. components
135
+ expectEqual ( comps. seconds, Int64 ( i / 1000 ) )
136
+ expectEqual ( comps. attoseconds, Int64 ( i % 1000 ) * 1_000_000_000_000_000 )
137
+ }
138
+ }
139
+
140
+ tests. test ( " Duration components/100µs increments " ) {
141
+ for i in 0 ..< 1_000_000 {
142
+ let ms = 100 * i
143
+ let d = Duration . microseconds ( ms)
144
+ let comps = d. components
145
+ expectEqual ( comps. seconds, Int64 ( ms / 1_000_000 ) )
146
+ expectEqual ( comps. attoseconds, Int64 ( ms % 1_000_000 ) * 1_000_000_000_000 )
147
+ }
148
+ }
149
+
150
+ tests. test ( " Duration components/200ns increments " ) {
151
+ for i in 0 ..< 1_000_000 {
152
+ let ns = 200 * i
153
+ let d = Duration . nanoseconds ( ns)
154
+ let comps = d. components
155
+ expectEqual ( comps. seconds, Int64 ( ns / 1_000_000_000 ) )
156
+ expectEqual ( comps. attoseconds, Int64 ( ns % 1_000_000_000 ) * 1_000_000_000 )
157
+ }
158
+ }
159
+
113
160
await runAllTestsAsync ( )
114
161
}
115
162
}
0 commit comments