rustasync / runtime

Empowering everyone to build asynchronous software
https://docs.rs/runtime
Apache License 2.0
862 stars 28 forks source link

the failing assert(s) within a #[runtime::test] don't show exact line numbers #114

Closed ghost closed 4 years ago

ghost commented 5 years ago

I'm getting something like this when the test fails:

```rust failures: ---- set_get_del stdout ---- Error: Custom { kind: NotFound, error: "Attempted to delete inexisting key \'beep\'" } thread 'set_get_del' panicked at 'assertion failed: `(left == right)` left: `1`, right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', src/libtest/lib.rs:337:5 stack backtrace: 0: backtrace::backtrace::libunwind::trace at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88 1: backtrace::backtrace::trace_unsynchronized at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66 2: std::sys_common::backtrace::_print_fmt at src/libstd/sys_common/backtrace.rs:76 3: ::fmt at src/libstd/sys_common/backtrace.rs:60 4: core::fmt::write at src/libcore/fmt/mod.rs:1028 5: std::io::Write::write_fmt at /home/user/build/2nonpkgs/rust.stuff/rust/rust/src/libstd/io/mod.rs:1412 6: std::io::impls::>::write_fmt at src/libstd/io/impls.rs:141 7: std::sys_common::backtrace::_print at src/libstd/sys_common/backtrace.rs:64 8: std::sys_common::backtrace::print at src/libstd/sys_common/backtrace.rs:49 9: std::panicking::default_hook::{{closure}} at src/libstd/panicking.rs:196 10: std::panicking::default_hook at src/libstd/panicking.rs:207 11: std::panicking::rust_panic_with_hook at src/libstd/panicking.rs:473 12: std::panicking::continue_panic_fmt at src/libstd/panicking.rs:380 13: std::panicking::begin_panic_fmt at src/libstd/panicking.rs:335 14: test::assert_test_result at ./<::std::macros::panic macros>:9 15: test::set_get_del::{{closure}} at tests/test.rs:17 16: core::ops::function::FnOnce::call_once at /home/user/build/2nonpkgs/rust.stuff/rust/rust/src/libcore/ops/function.rs:227 17: as core::ops::function::FnOnce>::call_once at /home/user/build/2nonpkgs/rust.stuff/rust/rust/src/liballoc/boxed.rs:922 18: __rust_maybe_catch_panic at src/libpanic_unwind/lib.rs:80 19: std::panicking::try at /home/user/build/2nonpkgs/rust.stuff/rust/rust/src/libstd/panicking.rs:271 20: test::run_test::run_test_inner::{{closure}} at src/libtest/lib.rs:1460 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. failures: set_get_del test result: FAILED. 4 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out ```
  14: test::assert_test_result
             at ./<::std::macros::panic macros>:9
  15: test::set_get_del::{{closure}}
             at tests/test.rs:17

where test.rs:17 points to the #[runtime::test] line of

#[runtime::test]
async fn set_get_del() -> io::Result<()> {  

and there's no line number pointing to the failing assert, which is probably on line 31, I haven't checked which exactly because I've many similar asserts and I've to sift through them a bit to find it.

Was using: runtime = "0.3.0-alpha.4"

(code isn't yet uploaded anywhere but it's a modified version of memdb, just messing around with it learning)

rustc 1.40.0-dev (f3c8eba64 2019-09-28)
binary: rustc
commit-hash: f3c8eba643a815d720e7f20699b3dca144c845c4
commit-date: 2019-09-28
host: x86_64-unknown-linux-gnu
release: 1.40.0-dev
LLVM version: 9.0

EDIT Ok, I made the code available here: https://github.com/howaboutsynergy/memdb/tree/vague_line_numbers_for_assert_fail just run $ RUST_BACKTRACE=1 cargo test