| ... | @@ -221,9 +221,12 @@ mod tests { | ... | @@ -221,9 +221,12 @@ mod tests { |
| 221 | let f = crate::transport_tests::Fixture::new(); | 221 | let f = crate::transport_tests::Fixture::new(); |
| 222 | let (send, commands) = async_channel::bounded(4); | 222 | let (send, commands) = async_channel::bounded(4); |
| 223 | let (done, finished) = mpsc::sync_channel(1); | 223 | let (done, finished) = mpsc::sync_channel(1); |
| 224 | f.client | 224 | // Build with the bridge registered so zbus waits for its method-call listener. |
| 225 | .object_server() | 225 | // Registering it after build can drop the first call while that listener starts. |
| 226 | .at( | 226 | let bridge = Builder::address(f.address.as_str()) |
| | 227 | .unwrap() |
| | 228 | .method_timeout(DEADLINE) |
| | 229 | .serve_at( |
| 227 | OBJECT, | 230 | OBJECT, |
| 228 | Bridge { | 231 | Bridge { |
| 229 | owner: f._server.unique_name().unwrap().to_string(), | 232 | owner: f._server.unique_name().unwrap().to_string(), |
| ... | @@ -231,8 +234,10 @@ mod tests { | ... | @@ -231,8 +234,10 @@ mod tests { |
| 231 | done, | 234 | done, |
| 232 | }, | 235 | }, |
| 233 | ) | 236 | ) |
| | 237 | .unwrap() |
| | 238 | .build() |
| 234 | .unwrap(); | 239 | .unwrap(); |
| 235 | let destination = f.client.unique_name().unwrap().to_string(); | 240 | let destination = bridge.unique_name().unwrap().to_string(); |
| 236 | let stranger = Builder::address(f.address.as_str()) | 241 | let stranger = Builder::address(f.address.as_str()) |
| 237 | .unwrap() | 242 | .unwrap() |
| 238 | .method_timeout(DEADLINE) | 243 | .method_timeout(DEADLINE) |
| ... | @@ -275,10 +280,7 @@ mod tests { | ... | @@ -275,10 +280,7 @@ mod tests { |
| 275 | kwin.call::<_, _, ()>("Event", &("{\"event\":\"done\"}",)) | 280 | kwin.call::<_, _, ()>("Event", &("{\"event\":\"done\"}",)) |
| 276 | .unwrap(); | 281 | .unwrap(); |
| 277 | finished.recv_timeout(DEADLINE).unwrap(); | 282 | finished.recv_timeout(DEADLINE).unwrap(); |
| 278 | f.client | 283 | bridge.object_server().remove::<Bridge, _>(OBJECT).unwrap(); |
| 279 | .object_server() | | |
| 280 | .remove::<Bridge, _>(OBJECT) | | |
| 281 | .unwrap(); | | |
| 282 | } | 284 | } |
| 283 | | 285 | |
| 284 | #[test] | 286 | #[test] |