[
https://issues.apache.org/jira/browse/AVRO-3910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Tzvetanov Grigorov resolved AVRO-3910.
---------------------------------------------
Fix Version/s: 1.12.0
1.11.4
Resolution: Fixed
> [Rust] Replace `color-backtrace` with `better-panic` for the tests
> ------------------------------------------------------------------
>
> Key: AVRO-3910
> URL: https://issues.apache.org/jira/browse/AVRO-3910
> Project: Apache Avro
> Issue Type: Improvement
> Components: rust
> Reporter: Martin Tzvetanov Grigorov
> Assignee: Martin Tzvetanov Grigorov
> Priority: Minor
> Labels: pull-request-available
> Fix For: 1.12.0, 1.11.4
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Replace the usage of `color-backtrace` for formatting the
> stacktrace/backtrace with `better-panic` crate.
>
> color-backtrace produces something like:
> {code:java}
> running 1 test
> The application panicked (crashed).
> Message: called `Result::unwrap()` on an `Err` value: VariantNotFound
> Location: avro/src/codec.rs:288Run with COLORBT_SHOW_HIDDEN=1 environment
> variable to disable frame filtering.
> Run with RUST_BACKTRACE=full to include source snippets.
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> ⋮ 11 frames hidden ⋮
>
> 12: core::result::Result<T,E>::unwrap::h42875ca1fbe01988
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/result.rs:1077
> 13: apache_avro::codec::tests::blah_codec_from_str::h31a897f50d0646ef
> at /home/martin/git/apache/avro/lang/rust/avro/src/codec.rs:288
> 14:
> apache_avro::codec::tests::blah_codec_from_str::{{closure}}::hd50971d27dbdf844
> at /home/martin/git/apache/avro/lang/rust/avro/src/codec.rs:285
> 15: core::ops::function::FnOnce::call_once::he1a6a7003e894c20
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/ops/function.rs:250
> 16: core::ops::function::FnOnce::call_once::heaa6bd10e636ddeb
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/ops/function.rs:250
> 17: test::__rust_begin_short_backtrace::h648a8e2968228ae1
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/test/src/lib.rs:626
> 18: test::run_test_in_process::{{closure}}::h6f41f9e0cb0e01f3
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/test/src/lib.rs:649
> 19: <core::panic::unwind_safe::AssertUnwindSafe<F> as
> core::ops::function::FnOnce<()>>::call_once::hdd10d814e6f87879
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panic/unwind_safe.rs:271
> 20: std::panicking::try::do_call::heb49837323e0a108
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:504
> 21: std::panicking::try::h1c76451ee4678b45
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:468
> 22: std::panic::catch_unwind::h4b3292a1ebe68a9f
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panic.rs:142
> 23: test::run_test_in_process::h199922650f75555c
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/test/src/lib.rs:649
> 24: test::run_test::{{closure}}::hb30d8c3830867614
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/test/src/lib.rs:572
> 25: test::run_test::{{closure}}::hb1d502edb82ef10a
> at
> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/test/src/lib.rs:600
> ⋮ 13 frames hidden ⋮
>
> test codec::tests::blah_codec_from_str ... FAILED
> {code}
>
> better-panic produces:
> {code:java}
> running 1 test
> Backtrace (most recent call first):
> File "rust:library/core/src/result.rs", line 1077, in
> core::result::Result<T,E>::unwrap
> File "/home/martin/git/apache/avro/lang/rust/avro/src/codec.rs", line 288,
> in apache_avro::codec::tests::blah_codec_from_str
> Codec::from_str("not a codec").unwrap();
> File "/home/martin/git/apache/avro/lang/rust/avro/src/codec.rs", line 285,
> in apache_avro::codec::tests::blah_codec_from_str::{{closure}}
> fn blah_codec_from_str() {
> File "rust:library/core/src/ops/function.rs", line 250, in
> core::ops::function::FnOnce::call_once
> File "rust:library/core/src/ops/function.rs", line 250, in
> core::ops::function::FnOnce::call_once
> File "rust:library/test/src/lib.rs", line 626, in
> test::__rust_begin_short_backtrace
> File "rust:library/test/src/lib.rs", line 649, in
> test::run_test_in_process::{{closure}}
> File "rust:library/core/src/panic/unwind_safe.rs", line 271, in
> <core::panic::unwind_safe::AssertUnwindSafe<F> as
> core::ops::function::FnOnce<()>>::call_once
> File "rust:library/std/src/panicking.rs", line 504, in
> std::panicking::try::do_call
> File "rust:library/std/src/panicking.rs", line 468, in std::panicking::try
> File "rust:library/std/src/panic.rs", line 142, in std::panic::catch_unwind
> File "rust:library/test/src/lib.rs", line 649, in test::run_test_in_process
> File "rust:library/test/src/lib.rs", line 572, in
> test::run_test::{{closure}}
> File "rust:library/test/src/lib.rs", line 600, in
> test::run_test::{{closure}}
> File "rust:library/std/src/sys_common/backtrace.rs", line 154, in
> std::sys_common::backtrace::__rust_begin_short_backtrace
> File "rust:library/std/src/thread/mod.rs", line 529, in
> std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}
> File "rust:library/core/src/panic/unwind_safe.rs", line 271, in
> <core::panic::unwind_safe::AssertUnwindSafe<F> as
> core::ops::function::FnOnce<()>>::call_once
> File "rust:library/std/src/panicking.rs", line 504, in
> std::panicking::try::do_call
> File "rust:library/std/src/panicking.rs", line 468, in std::panicking::try
> File "rust:library/std/src/panic.rs", line 142, in std::panic::catch_unwind
> File "rust:library/std/src/thread/mod.rs", line 528, in
> std::thread::Builder::spawn_unchecked_::{{closure}}
> File "rust:library/core/src/ops/function.rs", line 250, in
> core::ops::function::FnOnce::call_once{{vtable.shim}}
> File "rust:library/alloc/src/boxed.rs", line 2007, in
> <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
> File "rust:library/alloc/src/boxed.rs", line 2007, in
> <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
> File "rust:library/std/src/sys/unix/thread.rs", line 108, in
> std::sys::unix::thread::Thread::new::thread_start
> File "./nptl/./nptl/pthread_create.c", line 442, in start_thread
> File "./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S", line 81, in
> clone3The application panicked (crashed).
> called `Result::unwrap()` on an `Err` value: VariantNotFound
> in avro/src/codec.rs, line 288
> thread: codec::tests::blah_codec_from_str
> test codec::tests::blah_codec_from_str ... FAILED
> {code}
>
> The benefits of using better-panic are:
> * it shows a snippet of the source code with the failure
> * it is configurable what to print
--
This message was sent by Atlassian Jira
(v8.20.10#820010)