Skip to content

Commit cc424ff

Browse files
committed
Add test case to reproduce JSON bug
1 parent 201a45b commit cc424ff

File tree

2 files changed

+1045
-7
lines changed

2 files changed

+1045
-7
lines changed

Tests/FoundationEssentialsTests/JSONEncoderTests.swift

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2492,13 +2492,19 @@ extension JSONEncoderTests {
24922492
prettyPrintEncoder.outputFormatting = .prettyPrinted
24932493

24942494
for encoder in [JSONEncoder(), prettyPrintEncoder] {
2495-
let reencodedData = try! encoder.encode(decoded)
2496-
let redecodedObjects = try! decoder.decode(T.self, from: reencodedData)
2497-
XCTAssertEqual(decoded, redecodedObjects)
2498-
2499-
if let plistData {
2500-
let decodedPlistObjects = try! PropertyListDecoder().decode(T.self, from: plistData)
2501-
XCTAssertEqual(decoded, decodedPlistObjects)
2495+
do {
2496+
let reencodedData = try encoder.encode(decoded)
2497+
let redecodedObjects = try decoder.decode(T.self, from: reencodedData)
2498+
XCTAssertEqual(decoded, redecodedObjects)
2499+
2500+
if let plistData {
2501+
let decodedPlistObjects = try PropertyListDecoder().decode(T.self, from: plistData)
2502+
XCTAssertEqual(decoded, decodedPlistObjects)
2503+
2504+
}
2505+
}
2506+
catch {
2507+
XCTFail("Pass test \"\(name) failed with error: \(error)")
25022508
}
25032509
}
25042510
}
@@ -2523,6 +2529,7 @@ extension JSONEncoderTests {
25232529
_run_passTest(name: "pass13", type: JSONPass.Test13.self)
25242530
_run_passTest(name: "pass14", type: JSONPass.Test14.self)
25252531
_run_passTest(name: "pass15", type: JSONPass.Test15.self)
2532+
_run_passTest(name: "pass16", type: JSONPass.Test16.self)
25262533
}
25272534

25282535
func test_json5PassJSONFiles() {
@@ -4368,6 +4375,12 @@ extension JSONPass {
43684375
}
43694376
}
43704377

4378+
extension JSONPass {
4379+
struct Test16: Codable, Equatable {
4380+
var nestedArray: [Test16]?
4381+
}
4382+
}
4383+
43714384
enum JSONFail {
43724385
typealias Test1 = String
43734386
typealias Test2 = [String]

0 commit comments

Comments
 (0)