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> {
273273 self . deref_mut ( ) . init ( ops) ;
274274 }
275275}
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 {
497497 Error :: InvalidId
498498 ) ;
499499 }
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+ }
500527}
You can’t perform that action at this time.
0 commit comments