From ab1e8f682a12bed69b45174c250fe69b38a2673c Mon Sep 17 00:00:00 2001 From: Oaksprout Date: Fri, 31 Jul 2026 09:28:36 +0100 Subject: [PATCH] Move TestHelper.race tests into @Isolated classes: batch 2 (#8075) --- .../ObservableFlatMapIsolatedTest.java | 102 ++++++++++++++++++ .../ObservableFlatMapMaybeIsolatedTest.java | 65 +++++++++++ .../ObservableFlatMapMaybeTest.java | 38 ------- .../ObservableFlatMapSingleIsolatedTest.java | 49 +++++++++ .../ObservableFlatMapSingleTest.java | 21 ---- .../observable/ObservableFlatMapTest.java | 69 ------------ ...vableMergeWithCompletableIsolatedTest.java | 48 +++++++++ .../ObservableMergeWithCompletableTest.java | 21 ---- .../ObservableMergeWithMaybeIsolatedTest.java | 48 +++++++++ .../ObservableMergeWithMaybeTest.java | 21 ---- ...ObservableMergeWithSingleIsolatedTest.java | 48 +++++++++ .../ObservableMergeWithSingleTest.java | 21 ---- 12 files changed, 360 insertions(+), 191 deletions(-) create mode 100644 src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapIsolatedTest.java create mode 100644 src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapMaybeIsolatedTest.java create mode 100644 src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapSingleIsolatedTest.java create mode 100644 src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithCompletableIsolatedTest.java create mode 100644 src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithMaybeIsolatedTest.java create mode 100644 src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithSingleIsolatedTest.java diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapIsolatedTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapIsolatedTest.java new file mode 100644 index 0000000000..dc787112a8 --- /dev/null +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapIsolatedTest.java @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2016-present, RxJava Contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See + * the License for the specific language governing permissions and limitations under the License. + */ + +package io.reactivex.rxjava4.internal.operators.observable; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Isolated; + +import io.reactivex.rxjava4.core.Observable; +import io.reactivex.rxjava4.core.RxJavaTest; +import io.reactivex.rxjava4.internal.functions.Functions; +import io.reactivex.rxjava4.observers.TestObserver; +import io.reactivex.rxjava4.plugins.RxJavaPlugins; +import io.reactivex.rxjava4.subjects.PublishSubject; +import io.reactivex.rxjava4.testsupport.TestHelper; + +@Isolated +public class ObservableFlatMapIsolatedTest extends RxJavaTest { + + @Test + public void innerCompleteCancelRace() { + for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { + final PublishSubject ps = PublishSubject.create(); + + final TestObserver to = Observable.merge(Observable.just(ps)).test(); + + Runnable r1 = ps::onComplete; + + Runnable r2 = to::dispose; + + TestHelper.race(r1, r2); + } + } + + @Test + public void cancelScalarDrainRace() { + for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { + List errors = TestHelper.trackPluginErrors(); + try { + + final PublishSubject> ps = PublishSubject.create(); + + final TestObserver to = ps.flatMap(Functions.>identity()).test(); + + Runnable r1 = to::dispose; + Runnable r2 = ps::onComplete; + + TestHelper.race(r1, r2); + + assertTrue(errors.isEmpty(), errors.toString()); + } finally { + RxJavaPlugins.reset(); + } + } + } + + @Test + public void cancelDrainRace() { + for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { + for (int j = 1; j < 50; j += 5) { + List errors = TestHelper.trackPluginErrors(); + try { + + final PublishSubject> ps = PublishSubject.create(); + + final TestObserver to = ps.flatMap(Functions.>identity()).test(); + + final PublishSubject just = PublishSubject.create(); + final PublishSubject just2 = PublishSubject.create(); + ps.onNext(just); + ps.onNext(just2); + + Runnable r1 = () -> { + just2.onNext(1); + to.dispose(); + }; + Runnable r2 = () -> just.onNext(1); + + TestHelper.race(r1, r2); + + assertTrue(errors.isEmpty(), errors.toString()); + } finally { + RxJavaPlugins.reset(); + } + } + } + } +} diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapMaybeIsolatedTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapMaybeIsolatedTest.java new file mode 100644 index 0000000000..c69fc9d644 --- /dev/null +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapMaybeIsolatedTest.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2016-present, RxJava Contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See + * the License for the specific language governing permissions and limitations under the License. + */ + +package io.reactivex.rxjava4.internal.operators.observable; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Isolated; + +import io.reactivex.rxjava4.core.Observable; +import io.reactivex.rxjava4.core.RxJavaTest; +import io.reactivex.rxjava4.observers.TestObserver; +import io.reactivex.rxjava4.subjects.MaybeSubject; +import io.reactivex.rxjava4.testsupport.TestHelper; + +@Isolated +public class ObservableFlatMapMaybeIsolatedTest extends RxJavaTest { + + @Test + public void successCompleteRace() { + for (int i = 0; i < TestHelper.RACE_LONG_LOOPS; i++) { + MaybeSubject ms1 = MaybeSubject.create(); + MaybeSubject ms2 = MaybeSubject.create(); + + TestObserver to = Observable.just(1, 2) + .flatMapMaybe(v -> v == 1 ? ms1 : ms2) + .test(); + + TestHelper.race( + ms1::onComplete, + () -> ms2.onSuccess(1) + ); + + to.assertResult(1); + } + } + + @Test + public void successCompleteRace2() { + for (int i = 0; i < TestHelper.RACE_LONG_LOOPS; i++) { + MaybeSubject ms1 = MaybeSubject.create(); + MaybeSubject ms2 = MaybeSubject.create(); + + TestObserver to = Observable.just(1, 2) + .flatMapMaybe(v -> v == 1 ? ms1 : ms2) + .test(); + + TestHelper.race( + () -> ms2.onSuccess(1), + ms1::onComplete + ); + + to.assertResult(1); + } + } +} diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapMaybeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapMaybeTest.java index ce26336038..e74af7dbcb 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapMaybeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapMaybeTest.java @@ -394,42 +394,4 @@ public void cancelWhileMapping() throws Throwable { cdl.await(); } } - - @Test - public void successCompleteRace() { - for (int i = 0; i < TestHelper.RACE_LONG_LOOPS; i++) { - MaybeSubject ms1 = MaybeSubject.create(); - MaybeSubject ms2 = MaybeSubject.create(); - - TestObserver to = Observable.just(1, 2) - .flatMapMaybe(v -> v == 1 ? ms1 : ms2) - .test(); - - TestHelper.race( - ms1::onComplete, - () -> ms2.onSuccess(1) - ); - - to.assertResult(1); - } - } - - @Test - public void successCompleteRace2() { - for (int i = 0; i < TestHelper.RACE_LONG_LOOPS; i++) { - MaybeSubject ms1 = MaybeSubject.create(); - MaybeSubject ms2 = MaybeSubject.create(); - - TestObserver to = Observable.just(1, 2) - .flatMapMaybe(v -> v == 1 ? ms1 : ms2) - .test(); - - TestHelper.race( - () -> ms2.onSuccess(1), - ms1::onComplete - ); - - to.assertResult(1); - } - } } diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapSingleIsolatedTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapSingleIsolatedTest.java new file mode 100644 index 0000000000..3f6df62ec8 --- /dev/null +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapSingleIsolatedTest.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2016-present, RxJava Contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See + * the License for the specific language governing permissions and limitations under the License. + */ + +package io.reactivex.rxjava4.internal.operators.observable; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Isolated; + +import io.reactivex.rxjava4.core.RxJavaTest; +import io.reactivex.rxjava4.exceptions.TestException; +import io.reactivex.rxjava4.observers.TestObserver; +import io.reactivex.rxjava4.subjects.PublishSubject; +import io.reactivex.rxjava4.subjects.SingleSubject; +import io.reactivex.rxjava4.testsupport.TestHelper; + +@Isolated +public class ObservableFlatMapSingleIsolatedTest extends RxJavaTest { + + @Test + public void innerErrorOuterCompleteRace() { + TestException ex = new TestException(); + for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { + PublishSubject ps1 = PublishSubject.create(); + SingleSubject ps2 = SingleSubject.create(); + + TestObserver to = ps1.flatMapSingle(_ -> ps2) + .test(); + + ps1.onNext(1); + + TestHelper.race( + ps1::onComplete, + () -> ps2.onError(ex) + ); + + to.assertFailure(TestException.class); + } + } +} diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapSingleTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapSingleTest.java index 396bb857e0..cce845ecbe 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapSingleTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapSingleTest.java @@ -309,27 +309,6 @@ public void undeliverableUponCancelDelayError() { upstream.flatMapSingle((Function>) v -> Single.just(v).hide(), new StandardConcurrentBufferedConfig(true))); } - @Test - public void innerErrorOuterCompleteRace() { - TestException ex = new TestException(); - for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { - PublishSubject ps1 = PublishSubject.create(); - SingleSubject ps2 = SingleSubject.create(); - - TestObserver to = ps1.flatMapSingle(_ -> ps2) - .test(); - - ps1.onNext(1); - - TestHelper.race( - ps1::onComplete, - () -> ps2.onError(ex) - ); - - to.assertFailure(TestException.class); - } - } - @Test public void cancelWhileMapping() throws Throwable { for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapTest.java index 51b5053f7e..1feabb15a5 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableFlatMapTest.java @@ -536,21 +536,6 @@ public void onNext(Integer t) { to.assertResult(1, 2); } - @Test - public void innerCompleteCancelRace() { - for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { - final PublishSubject ps = PublishSubject.create(); - - final TestObserver to = Observable.merge(Observable.just(ps)).test(); - - Runnable r1 = ps::onComplete; - - Runnable r2 = to::dispose; - - TestHelper.race(r1, r2); - } - } - @Test public void fusedInnerThrows() { Observable.just(1).hide() @@ -595,60 +580,6 @@ public void noCrossBoundaryFusion() { } } - @Test - public void cancelScalarDrainRace() { - for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { - List errors = TestHelper.trackPluginErrors(); - try { - - final PublishSubject> ps = PublishSubject.create(); - - final TestObserver to = ps.flatMap(Functions.>identity()).test(); - - Runnable r1 = to::dispose; - Runnable r2 = ps::onComplete; - - TestHelper.race(r1, r2); - - assertTrue(errors.isEmpty(), errors.toString()); - } finally { - RxJavaPlugins.reset(); - } - } - } - - @Test - public void cancelDrainRace() { - for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { - for (int j = 1; j < 50; j += 5) { - List errors = TestHelper.trackPluginErrors(); - try { - - final PublishSubject> ps = PublishSubject.create(); - - final TestObserver to = ps.flatMap(Functions.>identity()).test(); - - final PublishSubject just = PublishSubject.create(); - final PublishSubject just2 = PublishSubject.create(); - ps.onNext(just); - ps.onNext(just2); - - Runnable r1 = () -> { - just2.onNext(1); - to.dispose(); - }; - Runnable r2 = () -> just.onNext(1); - - TestHelper.race(r1, r2); - - assertTrue(errors.isEmpty(), errors.toString()); - } finally { - RxJavaPlugins.reset(); - } - } - } - } - @Test public void iterableMapperFunctionReturnsNull() { Observable.just(1) diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithCompletableIsolatedTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithCompletableIsolatedTest.java new file mode 100644 index 0000000000..76650071fd --- /dev/null +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithCompletableIsolatedTest.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2016-present, RxJava Contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See + * the License for the specific language governing permissions and limitations under the License. + */ + +package io.reactivex.rxjava4.internal.operators.observable; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Isolated; + +import io.reactivex.rxjava4.core.RxJavaTest; +import io.reactivex.rxjava4.observers.TestObserver; +import io.reactivex.rxjava4.subjects.CompletableSubject; +import io.reactivex.rxjava4.subjects.PublishSubject; +import io.reactivex.rxjava4.testsupport.TestHelper; + +@Isolated +public class ObservableMergeWithCompletableIsolatedTest extends RxJavaTest { + + @Test + public void completeRace() { + for (int i = 0; i < 1000; i++) { + final PublishSubject ps = PublishSubject.create(); + final CompletableSubject cs = CompletableSubject.create(); + + TestObserver to = ps.mergeWith(cs).test(); + + Runnable r1 = () -> { + ps.onNext(1); + ps.onComplete(); + }; + + Runnable r2 = cs::onComplete; + + TestHelper.race(r1, r2); + + to.assertResult(1); + } + } +} diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithCompletableTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithCompletableTest.java index c76fd436f3..f58bc09307 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithCompletableTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithCompletableTest.java @@ -83,27 +83,6 @@ public void otherError() { .assertFailure(TestException.class); } - @Test - public void completeRace() { - for (int i = 0; i < 1000; i++) { - final PublishSubject ps = PublishSubject.create(); - final CompletableSubject cs = CompletableSubject.create(); - - TestObserver to = ps.mergeWith(cs).test(); - - Runnable r1 = () -> { - ps.onNext(1); - ps.onComplete(); - }; - - Runnable r2 = cs::onComplete; - - TestHelper.race(r1, r2); - - to.assertResult(1); - } - } - @Test public void isDisposed() { new Observable() /* NFI */ { diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithMaybeIsolatedTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithMaybeIsolatedTest.java new file mode 100644 index 0000000000..f2eba087db --- /dev/null +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithMaybeIsolatedTest.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2016-present, RxJava Contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See + * the License for the specific language governing permissions and limitations under the License. + */ + +package io.reactivex.rxjava4.internal.operators.observable; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Isolated; + +import io.reactivex.rxjava4.core.RxJavaTest; +import io.reactivex.rxjava4.observers.TestObserver; +import io.reactivex.rxjava4.subjects.MaybeSubject; +import io.reactivex.rxjava4.subjects.PublishSubject; +import io.reactivex.rxjava4.testsupport.TestHelper; + +@Isolated +public class ObservableMergeWithMaybeIsolatedTest extends RxJavaTest { + + @Test + public void completeRace() { + for (int i = 0; i < 10000; i++) { + final PublishSubject ps = PublishSubject.create(); + final MaybeSubject cs = MaybeSubject.create(); + + TestObserver to = ps.mergeWith(cs).test(); + + Runnable r1 = () -> { + ps.onNext(1); + ps.onComplete(); + }; + + Runnable r2 = () -> cs.onSuccess(1); + + TestHelper.race(r1, r2); + + to.assertResult(1, 1); + } + } +} diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithMaybeTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithMaybeTest.java index 752f139ffe..4d00071e8a 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithMaybeTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithMaybeTest.java @@ -98,27 +98,6 @@ public void otherError() { .assertFailure(TestException.class); } - @Test - public void completeRace() { - for (int i = 0; i < 10000; i++) { - final PublishSubject ps = PublishSubject.create(); - final MaybeSubject cs = MaybeSubject.create(); - - TestObserver to = ps.mergeWith(cs).test(); - - Runnable r1 = () -> { - ps.onNext(1); - ps.onComplete(); - }; - - Runnable r2 = () -> cs.onSuccess(1); - - TestHelper.race(r1, r2); - - to.assertResult(1, 1); - } - } - @Test public void onNextSlowPath() { final PublishSubject ps = PublishSubject.create(); diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithSingleIsolatedTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithSingleIsolatedTest.java new file mode 100644 index 0000000000..14de669fb5 --- /dev/null +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithSingleIsolatedTest.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2016-present, RxJava Contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See + * the License for the specific language governing permissions and limitations under the License. + */ + +package io.reactivex.rxjava4.internal.operators.observable; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Isolated; + +import io.reactivex.rxjava4.core.RxJavaTest; +import io.reactivex.rxjava4.observers.TestObserver; +import io.reactivex.rxjava4.subjects.PublishSubject; +import io.reactivex.rxjava4.subjects.SingleSubject; +import io.reactivex.rxjava4.testsupport.TestHelper; + +@Isolated +public class ObservableMergeWithSingleIsolatedTest extends RxJavaTest { + + @Test + public void completeRace() { + for (int i = 0; i < 10000; i++) { + final PublishSubject ps = PublishSubject.create(); + final SingleSubject cs = SingleSubject.create(); + + TestObserver to = ps.mergeWith(cs).test(); + + Runnable r1 = () -> { + ps.onNext(1); + ps.onComplete(); + }; + + Runnable r2 = () -> cs.onSuccess(1); + + TestHelper.race(r1, r2); + + to.assertResult(1, 1); + } + } +} diff --git a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithSingleTest.java b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithSingleTest.java index 02bf161d91..997eff19bf 100644 --- a/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithSingleTest.java +++ b/src/test/java/io/reactivex/rxjava4/internal/operators/observable/ObservableMergeWithSingleTest.java @@ -90,27 +90,6 @@ public void otherError() { .assertFailure(TestException.class); } - @Test - public void completeRace() { - for (int i = 0; i < 10000; i++) { - final PublishSubject ps = PublishSubject.create(); - final SingleSubject cs = SingleSubject.create(); - - TestObserver to = ps.mergeWith(cs).test(); - - Runnable r1 = () -> { - ps.onNext(1); - ps.onComplete(); - }; - - Runnable r2 = () -> cs.onSuccess(1); - - TestHelper.race(r1, r2); - - to.assertResult(1, 1); - } - } - @Test public void onNextSlowPath() { final PublishSubject ps = PublishSubject.create();