-
Notifications
You must be signed in to change notification settings - Fork 554
Expand file tree
/
Copy pathIOSafetyTests.swift
More file actions
53 lines (46 loc) · 1.24 KB
/
IOSafetyTests.swift
File metadata and controls
53 lines (46 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//
// IOSafetyTests.swift
// Swifter
//
// Created by Brian Gerstle on 8/20/16.
// Copyright © 2016 Damian Kołakowski. All rights reserved.
//
import XCTest
#if os(Linux)
import FoundationNetworking
#endif
@testable import Swifter
class IOSafetyTests: XCTestCase {
var server: HttpServer!
var urlSession: URLSession!
override func setUp() {
super.setUp()
server = HttpServer.pingServer()
urlSession = URLSession(configuration: .default)
}
override func tearDown() {
if server.operating {
server.stop()
}
urlSession = nil
server = nil
super.tearDown()
}
func testStopWithActiveConnections() {
(0...100).forEach { cpt in
server = HttpServer.pingServer()
do {
try server.start()
XCTAssertFalse(urlSession.retryPing())
(0...100).forEach { _ in
DispatchQueue.global(qos: DispatchQoS.default.qosClass).sync {
urlSession.pingTask { _, _, _ in }.resume()
}
}
server.stop()
} catch let error {
XCTFail("\(cpt): \(error)")
}
}
}
}