File tree Expand file tree Collapse file tree 2 files changed +46
-0
lines changed Expand file tree Collapse file tree 2 files changed +46
-0
lines changed Original file line number Diff line number Diff line change @@ -273,3 +273,22 @@ impl<T: MutEventSubscriber + ?Sized> MutEventSubscriber for Box<T> {
273
273
self . deref_mut ( ) . init ( ops) ;
274
274
}
275
275
}
276
+
277
+ #[ cfg( test) ]
278
+ mod tests {
279
+ use super :: * ;
280
+
281
+ #[ test]
282
+ fn test_subscriber_id_derives ( ) {
283
+ let a = SubscriberId ( 1 ) ;
284
+ let b = SubscriberId ( 1 ) ;
285
+ let c = SubscriberId ( 2 ) ;
286
+
287
+ assert_eq ! ( a, b) ;
288
+ assert_ne ! ( a, c) ;
289
+ assert_ne ! ( c, b) ;
290
+
291
+ let d = c. clone ( ) ;
292
+ assert_eq ! ( c, d) ;
293
+ }
294
+ }
Original file line number Diff line number Diff line change @@ -497,4 +497,31 @@ mod tests {
497
497
Error :: InvalidId
498
498
) ;
499
499
}
500
+
501
+ #[ test]
502
+ #[ cfg( feature = "remote_endpoint" ) ]
503
+ fn test_endpoint ( ) {
504
+ use std:: thread;
505
+
506
+ let mut event_manager = EventManager :: < DummySubscriber > :: new ( ) . unwrap ( ) ;
507
+ let dummy = DummySubscriber :: new ( ) ;
508
+ let endpoint = event_manager. remote_endpoint ( ) ;
509
+ let kicker = event_manager. remote_endpoint ( ) ;
510
+
511
+ let thread_handle = thread:: spawn ( move || {
512
+ event_manager. run ( ) . unwrap ( ) ;
513
+ event_manager. run ( ) . unwrap ( ) ;
514
+ } ) ;
515
+
516
+ dummy. event_fd_1 . write ( 1 ) . unwrap ( ) ;
517
+
518
+ let token = endpoint
519
+ . call_blocking ( |sub_ops| -> Result < SubscriberId > { Ok ( sub_ops. add_subscriber ( dummy) ) } )
520
+ . unwrap ( ) ;
521
+ assert_eq ! ( token, SubscriberId ( 1 ) ) ;
522
+
523
+ kicker. kick ( ) . unwrap ( ) ;
524
+
525
+ thread_handle. join ( ) . unwrap ( ) ;
526
+ }
500
527
}
You can’t perform that action at this time.
0 commit comments