@@ -123,78 +123,84 @@ final class CAresDNSResolverTests: XCTestCase {
123123
124124 func test_concurrency( ) async throws {
125125 func run(
126+ _ name: String ,
126127 times: Int = 100 ,
127128 _ query: @Sendable @escaping ( _ index: Int ) async throws -> Void
128129 ) 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)
130+ do {
131+ try await withThrowingTaskGroup ( of: Void . self) { group in
132+ for i in 1 ... times {
133+ group. addTask {
134+ try await query ( i)
135+ }
133136 }
137+ for try await _ in group { }
134138 }
135- for try await _ in group { }
139+ } catch {
140+ print ( " Test of \( name) is throwing an error. " )
141+ throw error
136142 }
137143 }
138144
139145 let resolver = self . resolver!
140146 let verbose = self . verbose
141- try await run { i in
147+ try await run ( " queryA " ) { i in
142148 let reply = try await resolver. queryA ( name: " apple.com " )
143149 if verbose {
144150 print ( " [A] run # \( i) result: \( reply) " )
145151 }
146152 }
147153
148- try await run { i in
154+ try await run ( " queryAAAA " ) { i in
149155 let reply = try await resolver. queryAAAA ( name: " apple.com " )
150156 if verbose {
151157 print ( " [AAAA] run # \( i) result: \( reply) " )
152158 }
153159 }
154160
155- try await run { i in
161+ try await run ( " queryNS " ) { i in
156162 let reply = try await resolver. queryNS ( name: " apple.com " )
157163 if verbose {
158164 print ( " [NS] run # \( i) result: \( reply) " )
159165 }
160166 }
161167
162- try await run { i in
168+ try await run ( " queryCNAME " ) { i in
163169 let reply = try await resolver. queryCNAME ( name: " www.apple.com " )
164170 if verbose {
165171 print ( " [CNAME] run # \( i) result: \( String ( describing: reply) ) " )
166172 }
167173 }
168174
169- try await run { i in
175+ try await run ( " querySOA " ) { i in
170176 let reply = try await resolver. querySOA ( name: " apple.com " )
171177 if verbose {
172178 print ( " [SOA] run # \( i) result: \( String ( describing: reply) ) " )
173179 }
174180 }
175181
176- try await run { i in
182+ try await run ( " queryPTR " ) { i in
177183 let reply = try await resolver. queryPTR ( name: " 47.224.172.17.in-addr.arpa " )
178184 if verbose {
179185 print ( " [PTR] run # \( i) result: \( reply) " )
180186 }
181187 }
182188
183- try await run { i in
189+ try await run ( " queryMX " ) { i in
184190 let reply = try await resolver. queryMX ( name: " apple.com " )
185191 if verbose {
186192 print ( " [MX] run # \( i) result: \( reply) " )
187193 }
188194 }
189195
190- try await run { i in
196+ try await run ( " queryTXT " ) { i in
191197 let reply = try await resolver. queryTXT ( name: " apple.com " )
192198 if verbose {
193199 print ( " [TXT] run # \( i) result: \( reply) " )
194200 }
195201 }
196202
197- try await run { i in
203+ try await run ( " querySRV " ) { i in
198204 let reply = try await resolver. querySRV ( name: " _caldavs._tcp.google.com " )
199205 if verbose {
200206 print ( " [SRV] run # \( i) result: \( reply) " )
0 commit comments