Skip to content

Commit 3ab10e1

Browse files
authored
Fix slow failing test (#57)
1 parent 8f48ec0 commit 3ab10e1

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

Tests/AsyncDNSResolverTests/c-ares/CAresDNSResolverTests.swift

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -122,79 +122,95 @@ final class CAresDNSResolverTests: XCTestCase {
122122
}
123123

124124
func test_concurrency() async throws {
125+
let verbose = self.verbose
126+
125127
func run(
128+
_ name: String,
126129
times: Int = 100,
127130
_ query: @Sendable @escaping (_ index: Int) async throws -> Void
128131
) async throws {
129-
try await withThrowingTaskGroup(of: Void.self) { group in
130-
for i in 1...times {
131-
group.addTask {
132-
try await query(i)
132+
let start = Date.now
133+
defer {
134+
if verbose {
135+
print("Test of \(name) took \(Int64(start.timeIntervalSinceNow * -1000)) ms.")
136+
}
137+
}
138+
do {
139+
try await withThrowingTaskGroup(of: Void.self) { group in
140+
for i in 1...times {
141+
group.addTask {
142+
try await query(i)
143+
}
133144
}
145+
for try await _ in group {}
146+
}
147+
} catch {
148+
if verbose {
149+
print("Test of \(name) is throwing an error.")
134150
}
135-
for try await _ in group {}
151+
throw error
136152
}
137153
}
138154

139155
let resolver = self.resolver!
140-
let verbose = self.verbose
141-
try await run { i in
156+
try await run("queryA") { i in
142157
let reply = try await resolver.queryA(name: "apple.com")
143158
if verbose {
144159
print("[A] run #\(i) result: \(reply)")
145160
}
146161
}
147162

148-
try await run { i in
163+
try await run("queryAAAA") { i in
149164
let reply = try await resolver.queryAAAA(name: "apple.com")
150165
if verbose {
151166
print("[AAAA] run #\(i) result: \(reply)")
152167
}
153168
}
154169

155-
try await run { i in
170+
try await run("queryNS") { i in
156171
let reply = try await resolver.queryNS(name: "apple.com")
157172
if verbose {
158173
print("[NS] run #\(i) result: \(reply)")
159174
}
160175
}
161176

162-
try await run { i in
177+
try await run("queryCNAME") { i in
163178
let reply = try await resolver.queryCNAME(name: "www.apple.com")
164179
if verbose {
165180
print("[CNAME] run #\(i) result: \(String(describing: reply))")
166181
}
167182
}
168183

169-
try await run { i in
184+
try await run("querySOA") { i in
170185
let reply = try await resolver.querySOA(name: "apple.com")
171186
if verbose {
172187
print("[SOA] run #\(i) result: \(String(describing: reply))")
173188
}
174189
}
175190

176-
try await run { i in
191+
try await run("queryPTR") { i in
177192
let reply = try await resolver.queryPTR(name: "47.224.172.17.in-addr.arpa")
178193
if verbose {
179194
print("[PTR] run #\(i) result: \(reply)")
180195
}
181196
}
182197

183-
try await run { i in
198+
try await run("queryMX") { i in
184199
let reply = try await resolver.queryMX(name: "apple.com")
185200
if verbose {
186201
print("[MX] run #\(i) result: \(reply)")
187202
}
188203
}
189204

190-
try await run { i in
205+
// TXT lookups are very slow in CI and lead to timeouts.
206+
try await run("queryTXT", times: 5) { i in
191207
let reply = try await resolver.queryTXT(name: "apple.com")
192208
if verbose {
193209
print("[TXT] run #\(i) result: \(reply)")
194210
}
195211
}
196212

197-
try await run { i in
213+
try await run("querySRV") { i in
198214
let reply = try await resolver.querySRV(name: "_caldavs._tcp.google.com")
199215
if verbose {
200216
print("[SRV] run #\(i) result: \(reply)")

0 commit comments

Comments
 (0)