@@ -684,7 +684,24 @@ extension ObservableStandardSequenceOperatorsTest
684
684
Subscription ( 200 , 290 )
685
685
] )
686
686
}
687
-
687
+
688
+ #if TRACE_RESOURCES
689
+ func testFlatMapWithIndexReleasesResourcesOnComplete( ) {
690
+ _ = Observable < Int > . just ( 1 ) . flatMapWithIndex { _ in Observable . just ( 1 ) } . subscribe ( )
691
+ }
692
+
693
+ func testFlatMapWithIndex1ReleasesResourcesOnError( ) {
694
+ _ = Observable < Int > . error ( testError) . flatMapWithIndex { _ in Observable . just ( 1 ) } . subscribe ( )
695
+ }
696
+
697
+ func testFlatMapWithIndex2ReleasesResourcesOnError( ) {
698
+ _ = Observable < Int > . just ( 1 ) . flatMapWithIndex { _ -> Observable < Int > in throw testError } . subscribe ( )
699
+ }
700
+
701
+ func testFlatMapWithIndex3ReleasesResourcesOnError( ) {
702
+ _ = Observable < Int > . just ( 1 ) . flatMapWithIndex { _ -> Observable < Int > in Observable . error ( testError) } . subscribe ( )
703
+ }
704
+ #endif
688
705
}
689
706
690
707
// MARK: take
@@ -1149,6 +1166,16 @@ extension ObservableStandardSequenceOperatorsTest {
1149
1166
k. on ( . next( !n) )
1150
1167
} )
1151
1168
}
1169
+
1170
+ #if TRACE_RESOURCES
1171
+ func testTakeReleasesResourcesOnComplete( ) {
1172
+ _ = Observable < Int > . of ( 1 , 2 ) . take ( 1 ) . subscribe ( )
1173
+ }
1174
+
1175
+ func testTakeReleasesResourcesOnError( ) {
1176
+ _ = Observable < Int > . error ( testError) . take ( 1 ) . subscribe ( )
1177
+ }
1178
+ #endif
1152
1179
}
1153
1180
1154
1181
// MARK: takeLast
@@ -1403,6 +1430,16 @@ extension ObservableStandardSequenceOperatorsTest {
1403
1430
1404
1431
XCTAssertEqual ( elements, [ false ] )
1405
1432
}
1433
+
1434
+ #if TRACE_RESOURCES
1435
+ func testTakeLastReleasesResourcesOnComplete( ) {
1436
+ _ = Observable < Int > . of ( 1 , 2 ) . takeLast ( 1 ) . subscribe ( )
1437
+ }
1438
+
1439
+ func testTakeLastReleasesResourcesOnError( ) {
1440
+ _ = Observable < Int > . error ( testError) . takeLast ( 1 ) . subscribe ( )
1441
+ }
1442
+ #endif
1406
1443
}
1407
1444
1408
1445
// MARK: skip
@@ -1797,6 +1834,16 @@ extension ObservableStandardSequenceOperatorsTest {
1797
1834
Subscription ( 200 , 400 )
1798
1835
] )
1799
1836
}
1837
+
1838
+ #if TRACE_RESOURCES
1839
+ func testSkipReleasesResourcesOnComplete( ) {
1840
+ _ = Observable < Int > . just ( 1 ) . skip ( 1 ) . subscribe ( )
1841
+ }
1842
+
1843
+ func testSkipReleasesResourcesOnError( ) {
1844
+ _ = Observable < Int > . error ( testError) . skip ( 1 ) . subscribe ( )
1845
+ }
1846
+ #endif
1800
1847
}
1801
1848
1802
1849
// MARK: SkipWhile
@@ -2232,6 +2279,24 @@ extension ObservableStandardSequenceOperatorsTest {
2232
2279
Subscription ( 200 , 350 )
2233
2280
] )
2234
2281
}
2282
+
2283
+ #if TRACE_RESOURCES
2284
+ func testSkipWhileReleasesResourcesOnComplete( ) {
2285
+ _ = Observable < Int > . just ( 1 ) . skipWhile { _ in true } . subscribe ( )
2286
+ }
2287
+
2288
+ func testSkipWhileReleasesResourcesOnError( ) {
2289
+ _ = Observable < Int > . error ( testError) . skipWhile { _ in true } . subscribe ( )
2290
+ }
2291
+
2292
+ func testSkipWhileWithIndexReleasesResourcesOnComplete( ) {
2293
+ _ = Observable < Int > . just ( 1 ) . skipWhileWithIndex { _ in true } . subscribe ( )
2294
+ }
2295
+
2296
+ func testSkipWhileWithIndexReleasesResourcesOnError( ) {
2297
+ _ = Observable < Int > . error ( testError) . skipWhileWithIndex { _ in true } . subscribe ( )
2298
+ }
2299
+ #endif
2235
2300
}
2236
2301
2237
2302
// MARK: elementAt
@@ -2479,6 +2544,16 @@ extension ObservableStandardSequenceOperatorsTest {
2479
2544
Subscription ( 200 , 210 )
2480
2545
] )
2481
2546
}
2547
+
2548
+ #if TRACE_RESOURCES
2549
+ func testElementAtReleasesResourcesOnComplete( ) {
2550
+ _ = Observable < Int > . just ( 1 ) . elementAt ( 0 ) . subscribe ( )
2551
+ }
2552
+
2553
+ func testElementAtReleasesResourcesOnError( ) {
2554
+ _ = Observable < Int > . error ( testError) . elementAt ( 1 ) . subscribe ( )
2555
+ }
2556
+ #endif
2482
2557
}
2483
2558
2484
2559
@@ -2722,7 +2797,16 @@ extension ObservableStandardSequenceOperatorsTest {
2722
2797
} )
2723
2798
2724
2799
}
2725
-
2800
+
2801
+ #if TRACE_RESOURCES
2802
+ func testSingleReleasesResourcesOnComplete( ) {
2803
+ _ = Observable < Int > . just ( 1 ) . single ( ) . subscribe ( )
2804
+ }
2805
+
2806
+ func testSinleReleasesResourcesOnError( ) {
2807
+ _ = Observable < Int > . error ( testError) . single ( ) . subscribe ( )
2808
+ }
2809
+ #endif
2726
2810
}
2727
2811
2728
2812
// groupBy
@@ -3821,7 +3905,20 @@ extension ObservableSingleTest {
3821
3905
XCTAssertEqual ( xs. subscriptions, [
3822
3906
Subscription ( 200 , 400 ) ] )
3823
3907
}
3824
-
3908
+
3909
+ #if TRACE_RESOURCES
3910
+ func testGroupByReleasesResourcesOnComplete( ) {
3911
+ _ = Observable < Int > . just ( 1 ) . groupBy { $0 } . subscribe ( )
3912
+ }
3913
+
3914
+ func testGroupByReleasesResourcesOnError1( ) {
3915
+ _ = Observable < Int > . error ( testError) . groupBy { $0 } . subscribe ( )
3916
+ }
3917
+
3918
+ func testGroupByReleasesResourcesOnError2( ) {
3919
+ _ = Observable < Int > . error ( testError) . groupBy { x -> Int in throw testError } . subscribe ( )
3920
+ }
3921
+ #endif
3825
3922
}
3826
3923
3827
3924
extension String {
0 commit comments