Skip to content

Commit f8ecd76

Browse files
committed
Add two unit test cases
Add two unit test cases for SubscriberId and remote endpoint. Signed-off-by: Liu Jiang <[email protected]>
1 parent 4d39b46 commit f8ecd76

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

src/lib.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
}

src/manager.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)