@@ -104,8 +104,7 @@ extension TestJSONSerialization {
104
104
( " test_deserialize_simpleEscapeSequences_withData " , test_deserialize_simpleEscapeSequences_withData) ,
105
105
( " test_deserialize_unicodeEscapeSequence_withData " , test_deserialize_unicodeEscapeSequence_withData) ,
106
106
( " test_deserialize_unicodeSurrogatePairEscapeSequence_withData " , test_deserialize_unicodeSurrogatePairEscapeSequence_withData) ,
107
- // Disabled due to uninitialized memory SR-606
108
- // ("test_deserialize_allowFragments_withData", test_deserialize_allowFragments_withData),
107
+ ( " test_deserialize_allowFragments_withData " , test_deserialize_allowFragments_withData) ,
109
108
110
109
( " test_deserialize_unterminatedObjectString_withData " , test_deserialize_unterminatedObjectString_withData) ,
111
110
( " test_deserialize_missingObjectKey_withData " , test_deserialize_missingObjectKey_withData) ,
@@ -136,8 +135,7 @@ extension TestJSONSerialization {
136
135
( " test_deserialize_simpleEscapeSequences_withStream " , test_deserialize_simpleEscapeSequences_withStream) ,
137
136
( " test_deserialize_unicodeEscapeSequence_withStream " , test_deserialize_unicodeEscapeSequence_withStream) ,
138
137
( " test_deserialize_unicodeSurrogatePairEscapeSequence_withStream " , test_deserialize_unicodeSurrogatePairEscapeSequence_withStream) ,
139
- // Disabled due to uninitialized memory SR-606
140
- // ("test_deserialize_allowFragments_withStream", test_deserialize_allowFragments_withStream),
138
+ ( " test_deserialize_allowFragments_withStream " , test_deserialize_allowFragments_withStream) ,
141
139
142
140
( " test_deserialize_unterminatedObjectString_withStream " , test_deserialize_unterminatedObjectString_withStream) ,
143
141
( " test_deserialize_missingObjectKey_withStream " , test_deserialize_missingObjectKey_withStream) ,
@@ -207,10 +205,9 @@ extension TestJSONSerialization {
207
205
deserialize_unicodeSurrogatePairEscapeSequence ( objectType: . data)
208
206
}
209
207
210
- // Disabled due to uninitialized memory SR-606
211
- // func test_deserialize_allowFragments_withData() {
212
- // deserialize_allowFragments(objectType: .data)
213
- // }
208
+ func test_deserialize_allowFragments_withData( ) {
209
+ deserialize_allowFragments ( objectType: . data)
210
+ }
214
211
215
212
func test_deserialize_unterminatedObjectString_withData( ) {
216
213
deserialize_unterminatedObjectString ( objectType: . data)
@@ -305,10 +302,9 @@ extension TestJSONSerialization {
305
302
deserialize_unicodeSurrogatePairEscapeSequence ( objectType: . stream)
306
303
}
307
304
308
- // Disabled due to uninitialized memory SR-606
309
- // func test_deserialize_allowFragments_withStream() {
310
- // deserialize_allowFragments(objectType: .stream)
311
- // }
305
+ func test_deserialize_allowFragments_withStream( ) {
306
+ deserialize_allowFragments ( objectType: . stream)
307
+ }
312
308
313
309
func test_deserialize_unterminatedObjectString_withStream( ) {
314
310
deserialize_unterminatedObjectString ( objectType: . stream)
@@ -613,17 +609,26 @@ extension TestJSONSerialization {
613
609
func deserialize_allowFragments( objectType: ObjectType ) {
614
610
let subject = " 3 "
615
611
616
- do {
617
- for encoding in supportedEncodings {
618
- guard let data = subject. data ( using: encoding) else {
619
- XCTFail ( " Unable to convert string to data " )
620
- return
621
- }
622
- let result = try getjsonObjectResult ( data, objectType) as? Int
612
+ for encoding in supportedEncodings {
613
+ guard let data = subject. data ( using: encoding) else {
614
+ XCTFail ( " Unable to convert string to data using encoding \( encoding) " )
615
+ continue
616
+ }
617
+
618
+ // Check failure to decode without .allowFragments
619
+ XCTAssertThrowsError ( try getjsonObjectResult ( data, objectType) ) {
620
+ let nserror = ( $0 as! NSError )
621
+ XCTAssertEqual ( nserror. domain, NSCocoaErrorDomain)
622
+ let code = CocoaError ( _nsError: nserror) . code
623
+ XCTAssertEqual ( code, . propertyListReadCorrupt)
624
+ }
625
+
626
+ do {
627
+ let result = try getjsonObjectResult ( data, objectType, options: . allowFragments) as? Int
623
628
XCTAssertEqual ( result, 3 )
629
+ } catch {
630
+ XCTFail ( " Unexpected error: \( error) using encoding \( encoding) " )
624
631
}
625
- } catch {
626
- XCTFail ( " Unexpected error: \( error) " )
627
632
}
628
633
}
629
634
0 commit comments