@@ -1179,6 +1179,35 @@ class TestData : TestDataSuper {
1179
1179
let expected = Data ( bytes: [ 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ] )
1180
1180
expectEqual ( expected, reversedData)
1181
1181
}
1182
+
1183
+ func test_replaceSubrangeReferencingMutable( ) {
1184
+ let mdataObj = NSMutableData ( bytes: [ 0x01 , 0x02 , 0x03 , 0x04 ] , length: 4 )
1185
+ var data = Data ( referencing: mdataObj)
1186
+ let expected = data. count
1187
+ data. replaceSubrange ( 4 ..< 4 , with: Data ( bytes: [ ] ) )
1188
+ expectEqual ( expected, data. count)
1189
+ data. replaceSubrange ( 4 ..< 4 , with: Data ( bytes: [ ] ) )
1190
+ expectEqual ( expected, data. count)
1191
+ }
1192
+
1193
+ func test_replaceSubrangeReferencingImmutable( ) {
1194
+ let dataObj = NSData ( bytes: [ 0x01 , 0x02 , 0x03 , 0x04 ] , length: 4 )
1195
+ var data = Data ( referencing: dataObj)
1196
+ let expected = data. count
1197
+ data. replaceSubrange ( 4 ..< 4 , with: Data ( bytes: [ ] ) )
1198
+ expectEqual ( expected, data. count)
1199
+ data. replaceSubrange ( 4 ..< 4 , with: Data ( bytes: [ ] ) )
1200
+ expectEqual ( expected, data. count)
1201
+ }
1202
+
1203
+ func test_replaceSubrangeFromBridged( ) {
1204
+ var data = NSData ( bytes: [ 0x01 , 0x02 , 0x03 , 0x04 ] , length: 4 ) as Data
1205
+ let expected = data. count
1206
+ data. replaceSubrange ( 4 ..< 4 , with: Data ( bytes: [ ] ) )
1207
+ expectEqual ( expected, data. count)
1208
+ data. replaceSubrange ( 4 ..< 4 , with: Data ( bytes: [ ] ) )
1209
+ expectEqual ( expected, data. count)
1210
+ }
1182
1211
}
1183
1212
1184
1213
#if !FOUNDATION_XCTEST
@@ -1243,6 +1272,9 @@ DataTests.test("test_sliceOfSliceViaRangeExpression") { TestData().test_sliceOfS
1243
1272
DataTests . test ( " test_appendingSlices " ) { TestData ( ) . test_appendingSlices ( ) }
1244
1273
DataTests . test ( " test_sequenceInitializers " ) { TestData ( ) . test_sequenceInitializers ( ) }
1245
1274
DataTests . test ( " test_reversedDataInit " ) { TestData ( ) . test_reversedDataInit ( ) }
1275
+ DataTests . test ( " test_replaceSubrangeReferencingMutable " ) { TestData ( ) . test_replaceSubrangeReferencingMutable ( ) }
1276
+ DataTests . test ( " test_replaceSubrangeReferencingImmutable " ) { TestData ( ) . test_replaceSubrangeReferencingImmutable ( ) }
1277
+ DataTests . test ( " test_replaceSubrangeFromBridged " ) { TestData ( ) . test_replaceSubrangeFromBridged ( ) }
1246
1278
1247
1279
1248
1280
// XCTest does not have a crash detection, whereas lit does
0 commit comments