larry-robotics / elkodon

Elkodon - true zero-copy inter-process-communication in rust
Apache License 2.0
16 stars 2 forks source link

Make multithreaded tests with asserts more robust #61

Open elBoberido opened 10 months ago

elBoberido commented 10 months ago

Brief feature description

From https://github.com/elkodon/elkodon/issues/25#issuecomment-1793128951

========

@elfenpiff I found this https://stackoverflow.com/questions/35988775/how-can-i-cause-a-panic-on-a-thread-to-immediately-end-the-main-thread/36031130#36031130

The following code would terminate the whole test when an assert in a thread fails. It can also be placed in a function which could be called at the start of a test

let orig_hook = panic::take_hook();
panic::set_hook(Box::new(move |panic_info| {
    // invoke the default handler and exit the process
    orig_hook(panic_info);
    process::exit(1);
}));

========