Skip to content

Commit 597d249

Browse files
authored
Suppress UndeliverableException handling in tests (ReactiveX#6987) (ReactiveX#6996)
* Suppress UndeliverableException handling in tests (ReactiveX#6987) Use a JUnit TestRule to suppress UndeliverableException handling in test methods annotated with SuppressUndeliverable. * Write requested changes (ReactiveX#6996) * remove changes to RxJavaPlugins * move @rule field into RxJavaTest * use lambda SuppressUndeliverableRule
1 parent 3f386be commit 597d249

File tree

47 files changed

+210
-17
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+210
-17
lines changed

src/test/java/io/reactivex/rxjava3/core/RxJavaTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@
2020
import org.junit.*;
2121
import org.junit.rules.Timeout;
2222

23+
import io.reactivex.rxjava3.testsupport.SuppressUndeliverableRule;
24+
2325
public abstract class RxJavaTest {
2426
@Rule
2527
public Timeout globalTimeout = new Timeout(5, TimeUnit.MINUTES);
28+
@Rule
29+
public final SuppressUndeliverableRule suppressUndeliverableRule = new SuppressUndeliverableRule();
2630

2731
/**
2832
* Announce creates a log print preventing Travis CI from killing the build.

src/test/java/io/reactivex/rxjava3/internal/jdk8/ParallelCollectorTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ public Set<Characteristics> characteristics() {
148148
}
149149

150150
@Test
151+
@SuppressUndeliverable
151152
public void collectorCombinerCrash() {
152153
Flowable.range(1, 5)
153154
.parallel()

src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromCallableTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@
2929
import io.reactivex.rxjava3.exceptions.TestException;
3030
import io.reactivex.rxjava3.observers.TestObserver;
3131
import io.reactivex.rxjava3.schedulers.Schedulers;
32-
import io.reactivex.rxjava3.testsupport.TestHelper;
32+
import io.reactivex.rxjava3.testsupport.*;
3333

3434
public class CompletableFromCallableTest extends RxJavaTest {
35+
3536
@Test
3637
public void fromCallable() {
3738
final AtomicInteger atomicInteger = new AtomicInteger();
@@ -161,6 +162,7 @@ public String answer(InvocationOnMock invocation) throws Throwable {
161162
}
162163

163164
@Test
165+
@SuppressUndeliverable
164166
public void fromActionErrorsDisposed() {
165167
final AtomicInteger calls = new AtomicInteger();
166168
Completable.fromCallable(new Callable<Object>() {

src/test/java/io/reactivex/rxjava3/internal/operators/completable/CompletableFromSupplierTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import io.reactivex.rxjava3.functions.Supplier;
3131
import io.reactivex.rxjava3.observers.TestObserver;
3232
import io.reactivex.rxjava3.schedulers.Schedulers;
33-
import io.reactivex.rxjava3.testsupport.TestHelper;
33+
import io.reactivex.rxjava3.testsupport.*;
3434

3535
public class CompletableFromSupplierTest extends RxJavaTest {
3636

@@ -163,6 +163,7 @@ public String answer(InvocationOnMock invocation) throws Throwable {
163163
}
164164

165165
@Test
166+
@SuppressUndeliverable
166167
public void fromActionErrorsDisposed() {
167168
final AtomicInteger calls = new AtomicInteger();
168169
Completable.fromSupplier(new Supplier<Object>() {

src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableGroupByTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ public void empty() {
112112
}
113113

114114
@Test
115+
@SuppressUndeliverable
115116
public void error() {
116117
Flowable<String> sourceStrings = Flowable.just("one", "two", "three", "four", "five", "six");
117118
Flowable<String> errorSource = Flowable.error(new TestException("forced failure"));
@@ -1196,6 +1197,7 @@ public void keySelectorThrows() {
11961197
}
11971198

11981199
@Test
1200+
@SuppressUndeliverable
11991201
public void valueSelectorThrows() {
12001202
Flowable<Integer> source = Flowable.just(0, 1, 2, 3, 4, 5, 6);
12011203

@@ -1251,6 +1253,7 @@ public void accept(GroupedFlowable<Integer, Integer> t1) {
12511253
}
12521254

12531255
@Test
1256+
@SuppressUndeliverable
12541257
public void error2() {
12551258
Flowable<Integer> source = Flowable.concat(Flowable.just(0),
12561259
Flowable.<Integer> error(new TestException("Forced failure")));
@@ -1686,6 +1689,7 @@ public void accept(GroupedFlowable<Integer, Integer> g) {
16861689
}
16871690

16881691
@Test
1692+
@SuppressUndeliverable
16891693
public void keySelectorAndDelayError() {
16901694
Flowable.just(1).concatWith(Flowable.<Integer>error(new TestException()))
16911695
.groupBy(Functions.<Integer>identity(), true)
@@ -1700,6 +1704,7 @@ public Flowable<Integer> apply(GroupedFlowable<Integer, Integer> g) throws Excep
17001704
}
17011705

17021706
@Test
1707+
@SuppressUndeliverable
17031708
public void keyAndValueSelectorAndDelayError() {
17041709
Flowable.just(1).concatWith(Flowable.<Integer>error(new TestException()))
17051710
.groupBy(Functions.<Integer>identity(), Functions.<Integer>identity(), true)
@@ -1853,6 +1858,7 @@ public Publisher<Integer> apply(GroupedFlowable<Object, Integer> g) throws Excep
18531858
}
18541859

18551860
@Test
1861+
@SuppressUndeliverable
18561862
public void groupError() {
18571863
Flowable.just(1).concatWith(Flowable.<Integer>error(new TestException()))
18581864
.groupBy(Functions.justFunction(1), true)

src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableWindowWithFlowableTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,7 @@ public void run() {
623623
}
624624

625625
@Test
626+
@SuppressUndeliverable
626627
public void disposeMainBoundaryErrorRace() {
627628
final TestException ex = new TestException();
628629

src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableWindowWithStartEndFlowableTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import io.reactivex.rxjava3.processors.*;
3333
import io.reactivex.rxjava3.schedulers.TestScheduler;
3434
import io.reactivex.rxjava3.subscribers.*;
35-
import io.reactivex.rxjava3.testsupport.TestHelper;
35+
import io.reactivex.rxjava3.testsupport.*;
3636

3737
public class FlowableWindowWithStartEndFlowableTest extends RxJavaTest {
3838

@@ -324,6 +324,7 @@ public Flowable<Integer> apply(Integer v) throws Exception {
324324
}
325325

326326
@Test
327+
@SuppressUndeliverable
327328
public void endError() {
328329
PublishProcessor<Integer> source = PublishProcessor.create();
329330
PublishProcessor<Integer> start = PublishProcessor.create();

src/test/java/io/reactivex/rxjava3/internal/operators/flowable/FlowableWindowWithTimeTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import io.reactivex.rxjava3.processors.*;
3232
import io.reactivex.rxjava3.schedulers.*;
3333
import io.reactivex.rxjava3.subscribers.*;
34-
import io.reactivex.rxjava3.testsupport.TestHelper;
34+
import io.reactivex.rxjava3.testsupport.*;
3535

3636
public class FlowableWindowWithTimeTest extends RxJavaTest {
3737

@@ -556,6 +556,7 @@ public void restartTimer() {
556556
}
557557

558558
@Test
559+
@SuppressUndeliverable
559560
public void exactBoundaryError() {
560561
Flowable.error(new TestException())
561562
.window(1, TimeUnit.DAYS, Schedulers.single(), 2, true)
@@ -973,6 +974,7 @@ public void accept(Flowable<Integer> v) throws Exception {
973974
}
974975

975976
@Test
977+
@SuppressUndeliverable
976978
public void exactTimeBoundNoInterruptWindowOutputOnError() throws Exception {
977979
final AtomicBoolean isInterrupted = new AtomicBoolean();
978980

@@ -1053,6 +1055,7 @@ public void accept(Flowable<Integer> v) throws Exception {
10531055
}
10541056

10551057
@Test
1058+
@SuppressUndeliverable
10561059
public void exactTimeAndSizeBoundNoInterruptWindowOutputOnError() throws Exception {
10571060
final AtomicBoolean isInterrupted = new AtomicBoolean();
10581061

@@ -1133,6 +1136,7 @@ public void accept(Flowable<Integer> v) throws Exception {
11331136
}
11341137

11351138
@Test
1139+
@SuppressUndeliverable
11361140
public void skipTimeAndSizeBoundNoInterruptWindowOutputOnError() throws Exception {
11371141
final AtomicBoolean isInterrupted = new AtomicBoolean();
11381142

src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeUsingTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,7 @@ public void run() {
481481
}
482482

483483
@Test
484+
@SuppressUndeliverable
484485
public void errorDisposeRace() {
485486
for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
486487

src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableCreateTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
public class ObservableCreateTest extends RxJavaTest {
3434

3535
@Test
36+
@SuppressUndeliverable
3637
public void basic() {
3738
final Disposable d = Disposable.empty();
3839

@@ -58,6 +59,7 @@ public void subscribe(ObservableEmitter<Integer> e) throws Exception {
5859
}
5960

6061
@Test
62+
@SuppressUndeliverable
6163
public void basicWithCancellable() {
6264
final Disposable d1 = Disposable.empty();
6365
final Disposable d2 = Disposable.empty();
@@ -91,6 +93,7 @@ public void cancel() throws Exception {
9193
}
9294

9395
@Test
96+
@SuppressUndeliverable
9497
public void basicWithError() {
9598
final Disposable d = Disposable.empty();
9699

@@ -115,6 +118,7 @@ public void subscribe(ObservableEmitter<Integer> e) throws Exception {
115118
}
116119

117120
@Test
121+
@SuppressUndeliverable
118122
public void basicSerialized() {
119123
final Disposable d = Disposable.empty();
120124

@@ -142,6 +146,7 @@ public void subscribe(ObservableEmitter<Integer> e) throws Exception {
142146
}
143147

144148
@Test
149+
@SuppressUndeliverable
145150
public void basicWithErrorSerialized() {
146151
final Disposable d = Disposable.empty();
147152

@@ -209,6 +214,7 @@ public void unsafeWithObservable() {
209214
}
210215

211216
@Test
217+
@SuppressUndeliverable
212218
public void createNullValue() {
213219
final Throwable[] error = { null };
214220

@@ -232,6 +238,7 @@ public void subscribe(ObservableEmitter<Integer> e) throws Exception {
232238
}
233239

234240
@Test
241+
@SuppressUndeliverable
235242
public void createNullValueSerialized() {
236243
final Throwable[] error = { null };
237244

src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableGroupByTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ public void empty() {
9696
}
9797

9898
@Test
99+
@SuppressUndeliverable
99100
public void error() {
100101
Observable<String> sourceStrings = Observable.just("one", "two", "three", "four", "five", "six");
101102
Observable<String> errorSource = Observable.error(new RuntimeException("forced failure"));
@@ -1178,6 +1179,7 @@ public void keySelectorThrows() {
11781179
}
11791180

11801181
@Test
1182+
@SuppressUndeliverable
11811183
public void valueSelectorThrows() {
11821184
Observable<Integer> source = Observable.just(0, 1, 2, 3, 4, 5, 6);
11831185

@@ -1233,6 +1235,7 @@ public void accept(GroupedObservable<Integer, Integer> t1) {
12331235
}
12341236

12351237
@Test
1238+
@SuppressUndeliverable
12361239
public void error2() {
12371240
Observable<Integer> source = Observable.concat(Observable.just(0),
12381241
Observable.<Integer> error(new TestException("Forced failure")));
@@ -1446,6 +1449,7 @@ public Integer apply(Integer i) {
14461449
}
14471450

14481451
@Test
1452+
@SuppressUndeliverable
14491453
public void keySelectorAndDelayError() {
14501454
Observable.just(1).concatWith(Observable.<Integer>error(new TestException()))
14511455
.groupBy(Functions.<Integer>identity(), true)
@@ -1460,6 +1464,7 @@ public ObservableSource<Integer> apply(GroupedObservable<Integer, Integer> g) th
14601464
}
14611465

14621466
@Test
1467+
@SuppressUndeliverable
14631468
public void keyAndValueSelectorAndDelayError() {
14641469
Observable.just(1).concatWith(Observable.<Integer>error(new TestException()))
14651470
.groupBy(Functions.<Integer>identity(), Functions.<Integer>identity(), true)

src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableGroupJoinTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,7 @@ public Observable<Integer> apply(Integer r, Observable<Integer> l) throws Except
479479
}
480480

481481
@Test
482+
@SuppressUndeliverable
482483
public void innerErrorRight() {
483484
Observable.just(1)
484485
.groupJoin(

src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableLiftTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919

2020
import io.reactivex.rxjava3.core.*;
2121
import io.reactivex.rxjava3.exceptions.TestException;
22+
import io.reactivex.rxjava3.testsupport.SuppressUndeliverable;
2223

2324
public class ObservableLiftTest extends RxJavaTest {
2425

2526
@Test
27+
@SuppressUndeliverable
2628
public void callbackCrash() {
2729
try {
2830
Observable.just(1)

src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRefCountTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -855,6 +855,7 @@ protected void subscribeActual(Observer<? super Object> observer) {
855855
}
856856

857857
@Test
858+
@SuppressUndeliverable
858859
public void badSourceSubscribe() {
859860
BadObservableSubscribe bo = new BadObservableSubscribe();
860861

@@ -881,6 +882,7 @@ public void badSourceDispose() {
881882
}
882883

883884
@Test
885+
@SuppressUndeliverable
884886
public void badSourceConnect() {
885887
BadObservableConnect bo = new BadObservableConnect();
886888

@@ -922,6 +924,7 @@ protected void subscribeActual(Observer<? super Object> observer) {
922924
}
923925

924926
@Test
927+
@SuppressUndeliverable
925928
public void badSourceSubscribe2() {
926929
BadObservableSubscribe2 bo = new BadObservableSubscribe2();
927930

@@ -959,6 +962,7 @@ protected void subscribeActual(Observer<? super Object> observer) {
959962
}
960963

961964
@Test
965+
@SuppressUndeliverable
962966
public void badSourceCompleteDisconnect() {
963967
BadObservableConnect2 bo = new BadObservableConnect2();
964968

src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableRetryWithPredicateTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import io.reactivex.rxjava3.testsupport.*;
3838

3939
public class ObservableRetryWithPredicateTest extends RxJavaTest {
40+
4041
BiPredicate<Integer, Throwable> retryTwice = new BiPredicate<Integer, Throwable>() {
4142
@Override
4243
public boolean test(Integer t1, Throwable t2) {
@@ -390,6 +391,7 @@ public void dontRetry() {
390391
}
391392

392393
@Test
394+
@SuppressUndeliverable
393395
public void retryDisposeRace() {
394396
for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
395397
final PublishSubject<Integer> ps = PublishSubject.create();
@@ -438,6 +440,7 @@ public boolean test(Integer n, Throwable e) throws Exception {
438440
}
439441

440442
@Test
443+
@SuppressUndeliverable
441444
public void retryBiPredicateDisposeRace() {
442445
for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
443446
final PublishSubject<Integer> ps = PublishSubject.create();

src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import io.reactivex.rxjava3.plugins.RxJavaPlugins;
3535
import io.reactivex.rxjava3.schedulers.Schedulers;
3636
import io.reactivex.rxjava3.subjects.PublishSubject;
37-
import io.reactivex.rxjava3.testsupport.TestHelper;
37+
import io.reactivex.rxjava3.testsupport.*;
3838

3939
public class ObservableTakeTest extends RxJavaTest {
4040

@@ -111,6 +111,7 @@ public Integer apply(Integer t1) {
111111
}
112112

113113
@Test
114+
@SuppressUndeliverable
114115
public void takeDoesntLeakErrors() {
115116
Observable<String> source = Observable.unsafeCreate(new ObservableSource<String>() {
116117
@Override

src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTakeWhileTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ public boolean test(String input) {
100100
}
101101

102102
@Test
103+
@SuppressUndeliverable
103104
public void takeWhileDoesntLeakErrors() {
104105
Observable<String> source = Observable.unsafeCreate(new ObservableSource<String>() {
105106
@Override

src/test/java/io/reactivex/rxjava3/internal/operators/observable/ObservableTimeoutWithSelectorTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import io.reactivex.rxjava3.testsupport.*;
4141

4242
public class ObservableTimeoutWithSelectorTest extends RxJavaTest {
43+
4344
@Test
4445
public void timeoutSelectorNormal1() {
4546
PublishSubject<Integer> source = PublishSubject.create();
@@ -493,6 +494,7 @@ public void withOtherMainError() {
493494
}
494495

495496
@Test
497+
@SuppressUndeliverable
496498
public void badSourceTimeout() {
497499
new Observable<Integer>() {
498500
@Override

0 commit comments

Comments
 (0)