larry-robotics/elkodon

Make multithreaded tests with asserts more robust

Opened this issue · 0 comments

Brief feature description

From #25 (comment)

========

@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);
}));

========