Skip to content
This repository was archived by the owner on Dec 17, 2018. It is now read-only.

Commit 38c5442

Browse files
felix91grRLovelett
authored andcommitted
Added guard statements and XCTFail declarations. Full Linux coverage.
Added guard statements to replace forced unwraps that would otherwise crash Linux when running certain tests. Now that those tests are safe, I've enabled them on Linux. Now test coverage is complete on Linux.
1 parent 98d90d3 commit 38c5442

File tree

4 files changed

+79
-25
lines changed

4 files changed

+79
-25
lines changed

Tests/BaseProtocolTests/Types/HeaderTests.swift

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,31 @@ import XCTest
1212
class HeaderTests: XCTestCase {
1313

1414
func testHeaderWithNumericContentLength() {
15-
let d = loadFixture("shutdown.txt", in: "JSON-RPC/Requests")!
15+
guard let d = loadFixture("shutdown.txt", in: "JSON-RPC/Requests") else {
16+
XCTFail("loadFixture failed")
17+
return
18+
}
19+
1620
let header = Header(d)
1721
XCTAssertEqual(header.contentLength, 58)
1822
}
1923

2024
func testHeaderWithoutContentLength() {
21-
let d = loadFixture("non-numeric-content-length.txt", in: "JSON-RPC/Requests")!
25+
guard let d = loadFixture("non-numeric-content-length.txt", in: "JSON-RPC/Requests") else {
26+
XCTFail("loadFixture failed")
27+
return
28+
}
29+
2230
let header = Header(d)
2331
XCTAssertNil(header.contentLength)
2432
}
2533

2634
func testHeaderWithMultipleFields() {
27-
let d = loadFixture("multiple-field-header.txt", in: "JSON-RPC/Requests")!
35+
guard let d = loadFixture("multiple-field-header.txt", in: "JSON-RPC/Requests") else {
36+
XCTFail("loadFixture failed")
37+
return
38+
}
39+
2840
var it = Header(d)
2941

3042
// Content-Length: 271

Tests/BaseProtocolTests/Types/RequestIteratorTests.swift

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,23 @@ import XCTest
1212
class RequestIteratorTests: XCTestCase {
1313

1414
func testIteratingMultipleRequestsAndHeaders() {
15-
let d = loadFixture("multiple-requests-and-headers.txt", in: "JSON-RPC/Requests")!
15+
guard let d = loadFixture("multiple-requests-and-headers.txt", in: "JSON-RPC/Requests") else {
16+
XCTFail("loadFixture failed")
17+
return
18+
}
19+
1620
let c = Array(AnySequence { RequestBuffer(d) })
1721

1822
XCTAssertEqual(c.count, 4)
1923
XCTAssertEqual(c.map({ $0.count }), [270, 62, 271, 222])
2024
}
2125

2226
func testIteratingFullAndPartialRequestsWithoutCrash() {
23-
let d = loadFixture("partial-request.txt", in: "JSON-RPC/Requests")!
27+
guard let d = loadFixture("partial-request.txt", in: "JSON-RPC/Requests") else {
28+
XCTFail("loadFixture failed")
29+
return
30+
}
31+
2432
let it = RequestBuffer(d)
2533

2634
let first = it.next()
@@ -33,9 +41,20 @@ class RequestIteratorTests: XCTestCase {
3341
}
3442

3543
func testIteratingByAppendingBuffers() {
36-
let d1 = loadFixture("partial-request-1.txt", in: "JSON-RPC/Requests")!
37-
let d2 = loadFixture("partial-request-2.txt", in: "JSON-RPC/Requests")!
38-
let d3 = loadFixture("partial-request-3.txt", in: "JSON-RPC/Requests")!
44+
guard let d1 = loadFixture("partial-request-1.txt", in: "JSON-RPC/Requests") else {
45+
XCTFail("loadFixture failed")
46+
return
47+
}
48+
49+
guard let d2 = loadFixture("partial-request-2.txt", in: "JSON-RPC/Requests") else {
50+
XCTFail("loadFixture failed")
51+
return
52+
}
53+
54+
guard let d3 = loadFixture("partial-request-3.txt", in: "JSON-RPC/Requests") else {
55+
XCTFail("loadFixture failed")
56+
return
57+
}
3958

4059
let it = RequestBuffer(Data())
4160
// Since no data was sent to start it should have nothing in it

Tests/BaseProtocolTests/Types/RequestTests.swift

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ class RequestTests: XCTestCase {
4545
}
4646

4747
func testNotJSONContent() {
48-
let message = invalid!
48+
guard let message = invalid else {
49+
XCTFail("loadFixture failed")
50+
return
51+
}
4952

5053
do {
5154
_ = try Request(message)
@@ -57,7 +60,10 @@ class RequestTests: XCTestCase {
5760
}
5861

5962
func testInvalidRequestJSON() {
60-
let message = invalidRequest!
63+
guard let message = invalidRequest else {
64+
XCTFail("loadFixture failed")
65+
return
66+
}
6167

6268
do {
6369
_ = try Request(message)
@@ -69,7 +75,10 @@ class RequestTests: XCTestCase {
6975
}
7076

7177
func testValidRequest() {
72-
let message = validWithoutHeader!
78+
guard let message = validWithoutHeader else {
79+
XCTFail("loadFixture failed")
80+
return
81+
}
7382

7483
do {
7584
_ = try Request(message)
@@ -79,7 +88,10 @@ class RequestTests: XCTestCase {
7988
}
8089

8190
func testInvalidHeader() {
82-
let message = invalidHeader!
91+
guard let message = invalidHeader else {
92+
XCTFail("loadFixture failed")
93+
return
94+
}
8395

8496
do {
8597
_ = try Request(message)
@@ -91,7 +103,10 @@ class RequestTests: XCTestCase {
91103
}
92104

93105
func testValidHeaderAndRequest() {
94-
let message = valid!
106+
guard let message = valid else {
107+
XCTFail("loadFixture failed")
108+
return
109+
}
95110

96111
do {
97112
let r = try Request(message)
@@ -103,7 +118,10 @@ class RequestTests: XCTestCase {
103118
}
104119

105120
func testParsingParameters() {
106-
let message = valid!
121+
guard let message = valid else {
122+
XCTFail("loadFixture failed")
123+
return
124+
}
107125

108126
do {
109127
let r = try Request(message)
@@ -115,7 +133,10 @@ class RequestTests: XCTestCase {
115133
}
116134

117135
func testParsingIncorrectParameters() {
118-
let message = valid2!
136+
guard let message = valid2 else {
137+
XCTFail("loadFixture failed")
138+
return
139+
}
119140

120141
do {
121142
let r = try Request(message)
@@ -129,7 +150,10 @@ class RequestTests: XCTestCase {
129150
}
130151

131152
func testShutdownRequest() {
132-
let message = shutdown!
153+
guard let message = shutdown else {
154+
XCTFail("loadFixture failed")
155+
return
156+
}
133157

134158
do {
135159
let r = try Request(message)
@@ -141,7 +165,10 @@ class RequestTests: XCTestCase {
141165
}
142166

143167
func testTextDocumentDidOpen() {
144-
let message = textDocumentDidOpen!
168+
guard let message = textDocumentDidOpen else {
169+
XCTFail("loadFixture failed")
170+
return
171+
}
145172

146173
do {
147174
let r = try Request(message)

Tests/LinuxMain.swift

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,11 @@ XCTMain([
99
*/
1010

1111
/// Types
12-
// FIXME: Crashes the test suite
13-
// testCase(HeaderTests.allTests),
12+
// FIXME: these 3 fail because of BaseProtocolTests/Resources/Fixtures.swift @loadFixture
13+
testCase(HeaderTests.allTests),
14+
testCase(RequestIteratorTests.allTests),
15+
testCase(RequestTests.allTests),
1416

15-
// FIXME: Crashes the test suite
16-
// testCase(RequestIteratorTests.allTests),
17-
18-
// FIXME: Crashes the test suite
19-
// testCase(RequestTests.allTests),
20-
2117
testCase(ResponseTests.allTests),
2218

2319
/*

0 commit comments

Comments
 (0)