-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Hello together,
with version 0.4.0 tests ran all fine when I mocked functions that were run in parallel with rayon.
With the update to 0.5.0 the same tests don't run any more.
Here is a code snippet that works with 0.4.0 but not with 0.5.0.
#![allow(unused)]
fn some_string() -> String {
"some test".into()
}
fn some_other_string() -> String {
"some other test".into()
}
fn join_both_function_with_rayon() -> (String, String) {
rayon::join(some_string, some_other_string)
}
#[cfg(test)]
mod tests {
use super::*;
use injectorpp::interface::injector::{CallCountVerifier, FuncPtr, InjectorPP};
#[test]
fn test_join_both_function() {
let mut injector = InjectorPP::new();
injector
.when_called(injectorpp::func!(fn (super::some_other_string)() -> String))
.will_execute(injectorpp::fake!(
func_type: fn() -> String,
returns: "test".into()
));
injector
.when_called(injectorpp::func!(fn (super::some_string)() -> String))
.will_execute(injectorpp::fake!(
func_type: fn() -> String,
returns: "test".into()
));
let var = join_both_function_with_rayon();
assert_eq!(var, ("test".to_string(), "test".to_string()));
}
}Steps to reproduce
cargo new injectorpp-test --lib; cd injectorpp-test
cargo add injectorpp rayon
// add snippet from above to lib.rs
cargo testErrors with version 0.5.0
Compiling injectorpp-test v0.1.0 (/home/vidic_n/injectorpp-test)
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s
Running unittests src/lib.rs (target/debug/deps/injectorpp_test-e914dc7eceacf30d)
running 1 test
test tests::test_join_both_function ... FAILED
failures:
---- tests::test_join_both_function stdout ----
thread 'tests::test_join_both_function' (6200) panicked at src/lib.rs:39:9:
assertion `left == right` failed
left: ("some test", "some other test")
right: ("test", "test")
stack backtrace:
0: 0x63c76c337f52 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
1: 0x63c76c337f52 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
2: 0x63c76c337f52 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
3: 0x63c76c337f52 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
4: 0x63c76c34814a - core::fmt::rt::Argument::fmt::h01eff69902dad97f
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
5: 0x63c76c34814a - core::fmt::write::hed7b5c73d82ecb7c
6: 0x63c76c3069d6 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
7: 0x63c76c3069d6 - std::io::Write::write_fmt::h5e66814db8a9cfce
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
8: 0x63c76c3172c9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
9: 0x63c76c3172c9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
10: 0x63c76c317161 - std::panicking::default_hook::hf0ea8939246f43a9
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
11: 0x63c76c2c52ee - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
12: 0x63c76c2c52ee - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
13: 0x63c76c3175f2 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
14: 0x63c76c3175f2 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
15: 0x63c76c317388 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
16: 0x63c76c3128a9 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
17: 0x63c76c2fb7fd - __rustc[4425a7e20b4c8619]::rust_begin_unwind
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
18: 0x63c76c34f61c - core::panicking::panic_fmt::ha59b517dd231f4da
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
19: 0x63c76c34f4d3 - core::panicking::assert_failed_inner::h3c3301979dc81b81
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:439:17
20: 0x63c76c27e6f1 - core::panicking::assert_failed::hd5d2538d5cf6924c
at /home/vidic_n/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:394:5
21: 0x63c76c280487 - injectorpp_test::tests::test_join_both_function::h241ed3b7130940ad
at /home/vidic_n/injectorpp-test/src/lib.rs:39:9
22: 0x63c76c27e4e7 - injectorpp_test::tests::test_join_both_function::{{closure}}::h60b0b01a4e853958
at /home/vidic_n/injectorpp-test/src/lib.rs:21:33
23: 0x63c76c27ea06 - core::ops::function::FnOnce::call_once::he52ab73107f99b11
at /home/vidic_n/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
24: 0x63c76c2c50ab - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
25: 0x63c76c2c50ab - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
26: 0x63c76c2d8aba - test::run_test_in_process::{{closure}}::h444209903f00b347
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
27: 0x63c76c2d8aba - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
28: 0x63c76c2d8aba - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
29: 0x63c76c2d8aba - std::panicking::catch_unwind::h0fadaee22787a6dd
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
30: 0x63c76c2d8aba - std::panic::catch_unwind::hc47ad190f2c8e188
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
31: 0x63c76c2d8aba - test::run_test_in_process::hcd7faaf934f29999
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
32: 0x63c76c2d8aba - test::run_test::{{closure}}::hddc4550da4871867
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
33: 0x63c76c2b2f14 - test::run_test::{{closure}}::h98ae26689f13ed94
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
34: 0x63c76c2b2f14 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
35: 0x63c76c2b68b2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
36: 0x63c76c2b68b2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
37: 0x63c76c2b68b2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
38: 0x63c76c2b68b2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
39: 0x63c76c2b68b2 - std::panic::catch_unwind::h9d4d66a538912c18
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
40: 0x63c76c2b68b2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
41: 0x63c76c2b68b2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
42: 0x63c76c30db3f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
43: 0x63c76c30db3f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
44: 0x76d69ce1097a - <unknown>
45: 0x76d69ce942bc - <unknown>
46: 0x0 - <unknown>
failures:
tests::test_join_both_function
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
error: test failed, to rerun pass `--lib`Or is there another way to make this work again?
Thank you
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working