mirror of
https://github.com/ReactiveX/RxSwift.git
synced 2024-10-05 14:37:29 +03:00
Fix invalid logic with zip
operator and premature termination.
This commit is contained in:
parent
ff9f4e05b7
commit
f962ddd526
@ -58,22 +58,6 @@ class ZipSink<O: ObserverType> : Sink<O>, ZipSinkProtocol {
|
||||
self.dispose()
|
||||
}
|
||||
}
|
||||
else {
|
||||
var allOthersDone = true
|
||||
|
||||
let arity = self._isDone.count
|
||||
for i in 0 ..< arity {
|
||||
if i != index && !self._isDone[i] {
|
||||
allOthersDone = false
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if allOthersDone {
|
||||
self.forwardOn(.completed)
|
||||
self.dispose()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func fail(_ error: Swift.Error) {
|
||||
|
@ -81,7 +81,7 @@ extension ObservableCombineLatestTest {
|
||||
factory(<%= (Array(0..<i).map { "e\($0)" }).joined(separator: ", ") %>)
|
||||
}
|
||||
|
||||
XCTAssertEqual(res.events, [completed(<%= 200 + 10 * i %>)])
|
||||
XCTAssertEqual(res.events, [.completed(<%= 200 + 10 * i %>)])
|
||||
|
||||
<% for j in 0..<i { %>
|
||||
XCTAssertEqual(e<%= j %>.subscriptions, [Subscription(200, <%= 200 + 10 * (j + 1) %>)])
|
||||
|
@ -197,12 +197,12 @@ extension ObservableZipTest {
|
||||
|
||||
XCTAssertEqual(res.events, [
|
||||
.next(210, 10),
|
||||
.completed(220)
|
||||
.completed(230)
|
||||
])
|
||||
|
||||
|
||||
XCTAssertEqual(e0.subscriptions, [Subscription(200, 220)])
|
||||
XCTAssertEqual(e1.subscriptions, [Subscription(200, 220)])
|
||||
XCTAssertEqual(e1.subscriptions, [Subscription(200, 230)])
|
||||
}
|
||||
}
|
||||
|
||||
@ -419,13 +419,13 @@ extension ObservableZipTest {
|
||||
|
||||
XCTAssertEqual(res.events, [
|
||||
.next(210, 15),
|
||||
.completed(230)
|
||||
.completed(240)
|
||||
])
|
||||
|
||||
|
||||
XCTAssertEqual(e0.subscriptions, [Subscription(200, 220)])
|
||||
XCTAssertEqual(e1.subscriptions, [Subscription(200, 230)])
|
||||
XCTAssertEqual(e2.subscriptions, [Subscription(200, 230)])
|
||||
XCTAssertEqual(e2.subscriptions, [Subscription(200, 240)])
|
||||
}
|
||||
}
|
||||
|
||||
@ -670,14 +670,14 @@ extension ObservableZipTest {
|
||||
|
||||
XCTAssertEqual(res.events, [
|
||||
.next(210, 20),
|
||||
.completed(240)
|
||||
.completed(250)
|
||||
])
|
||||
|
||||
|
||||
XCTAssertEqual(e0.subscriptions, [Subscription(200, 220)])
|
||||
XCTAssertEqual(e1.subscriptions, [Subscription(200, 230)])
|
||||
XCTAssertEqual(e2.subscriptions, [Subscription(200, 240)])
|
||||
XCTAssertEqual(e3.subscriptions, [Subscription(200, 240)])
|
||||
XCTAssertEqual(e3.subscriptions, [Subscription(200, 250)])
|
||||
}
|
||||
}
|
||||
|
||||
@ -951,7 +951,7 @@ extension ObservableZipTest {
|
||||
|
||||
XCTAssertEqual(res.events, [
|
||||
.next(210, 25),
|
||||
.completed(250)
|
||||
.completed(260)
|
||||
])
|
||||
|
||||
|
||||
@ -959,7 +959,7 @@ extension ObservableZipTest {
|
||||
XCTAssertEqual(e1.subscriptions, [Subscription(200, 230)])
|
||||
XCTAssertEqual(e2.subscriptions, [Subscription(200, 240)])
|
||||
XCTAssertEqual(e3.subscriptions, [Subscription(200, 250)])
|
||||
XCTAssertEqual(e4.subscriptions, [Subscription(200, 250)])
|
||||
XCTAssertEqual(e4.subscriptions, [Subscription(200, 260)])
|
||||
}
|
||||
}
|
||||
|
||||
@ -1263,7 +1263,7 @@ extension ObservableZipTest {
|
||||
|
||||
XCTAssertEqual(res.events, [
|
||||
.next(210, 30),
|
||||
.completed(260)
|
||||
.completed(270)
|
||||
])
|
||||
|
||||
|
||||
@ -1272,7 +1272,7 @@ extension ObservableZipTest {
|
||||
XCTAssertEqual(e2.subscriptions, [Subscription(200, 240)])
|
||||
XCTAssertEqual(e3.subscriptions, [Subscription(200, 250)])
|
||||
XCTAssertEqual(e4.subscriptions, [Subscription(200, 260)])
|
||||
XCTAssertEqual(e5.subscriptions, [Subscription(200, 260)])
|
||||
XCTAssertEqual(e5.subscriptions, [Subscription(200, 270)])
|
||||
}
|
||||
}
|
||||
|
||||
@ -1607,7 +1607,7 @@ extension ObservableZipTest {
|
||||
|
||||
XCTAssertEqual(res.events, [
|
||||
.next(210, 35),
|
||||
.completed(270)
|
||||
.completed(280)
|
||||
])
|
||||
|
||||
|
||||
@ -1617,7 +1617,7 @@ extension ObservableZipTest {
|
||||
XCTAssertEqual(e3.subscriptions, [Subscription(200, 250)])
|
||||
XCTAssertEqual(e4.subscriptions, [Subscription(200, 260)])
|
||||
XCTAssertEqual(e5.subscriptions, [Subscription(200, 270)])
|
||||
XCTAssertEqual(e6.subscriptions, [Subscription(200, 270)])
|
||||
XCTAssertEqual(e6.subscriptions, [Subscription(200, 280)])
|
||||
}
|
||||
}
|
||||
|
||||
@ -1984,7 +1984,7 @@ extension ObservableZipTest {
|
||||
|
||||
XCTAssertEqual(res.events, [
|
||||
.next(210, 40),
|
||||
.completed(280)
|
||||
.completed(290)
|
||||
])
|
||||
|
||||
|
||||
@ -1995,7 +1995,7 @@ extension ObservableZipTest {
|
||||
XCTAssertEqual(e4.subscriptions, [Subscription(200, 260)])
|
||||
XCTAssertEqual(e5.subscriptions, [Subscription(200, 270)])
|
||||
XCTAssertEqual(e6.subscriptions, [Subscription(200, 280)])
|
||||
XCTAssertEqual(e7.subscriptions, [Subscription(200, 280)])
|
||||
XCTAssertEqual(e7.subscriptions, [Subscription(200, 290)])
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -170,12 +170,11 @@ extension ObservableZipTest {
|
||||
|
||||
XCTAssertEqual(res.events, [
|
||||
.next(210, <%= 5 * i %>),
|
||||
.completed(<%= 220 + (i - 2) * 10 %>)
|
||||
.completed(<%= 220 + (i - 1) * 10 %>)
|
||||
])
|
||||
|
||||
<% for j in 0..<i-1 { %>
|
||||
<% for j in 0..<i { %>
|
||||
XCTAssertEqual(e<%= j %>.subscriptions, [Subscription(200, <%= 220 + 10 * j %>)])<% } %>
|
||||
XCTAssertEqual(e<%= i-1 %>.subscriptions, [Subscription(200, <%= 220 + 10 * (i - 2) %>)])
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ extension ObservableZipTest {
|
||||
}
|
||||
|
||||
let messages = [
|
||||
Recorded.completed(215, Int.self)
|
||||
Recorded.completed(220, Int.self)
|
||||
]
|
||||
XCTAssertEqual(res.events, messages)
|
||||
|
||||
@ -96,7 +96,7 @@ extension ObservableZipTest {
|
||||
])
|
||||
|
||||
XCTAssertEqual(o.subscriptions, [
|
||||
Subscription(200, 215)
|
||||
Subscription(200, 220)
|
||||
])
|
||||
}
|
||||
|
||||
@ -119,7 +119,7 @@ extension ObservableZipTest {
|
||||
}
|
||||
|
||||
let messages = [
|
||||
Recorded.completed(215, Int.self)
|
||||
Recorded.completed(220, Int.self)
|
||||
]
|
||||
XCTAssertEqual(res.events, messages)
|
||||
|
||||
@ -128,7 +128,7 @@ extension ObservableZipTest {
|
||||
])
|
||||
|
||||
XCTAssertEqual(o.subscriptions, [
|
||||
Subscription(200, 215)
|
||||
Subscription(200, 220)
|
||||
])
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user