[INFO] crate ublox_derive 0.0.1 is already in cache [INFO] testing ublox_derive-0.0.1 against 1.44.0 for beta-1.45-1 [INFO] extracting crate ublox_derive 0.0.1 into /workspace/builds/worker-2/source [INFO] validating manifest of crates.io crate ublox_derive 0.0.1 on toolchain 1.44.0 [INFO] running `"/workspace/cargo-home/bin/cargo" "+1.44.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking crates.io crate ublox_derive 0.0.1 [INFO] finished tweaking crates.io crate ublox_derive 0.0.1 [INFO] tweaked toml for crates.io crate ublox_derive 0.0.1 written to /workspace/builds/worker-2/source/Cargo.toml [INFO] running `"/workspace/cargo-home/bin/cargo" "+1.44.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/workspace/cargo-home/bin/cargo" "+1.44.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1.44.0" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 1427b8af10b4265a1a3fc090b78e9823842e80c6acb0b963ad1c4cf538ec9f15 [INFO] running `"docker" "start" "-a" "1427b8af10b4265a1a3fc090b78e9823842e80c6acb0b963ad1c4cf538ec9f15"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling proc-macro2 v1.0.18 [INFO] [stderr] Compiling quote v1.0.6 [INFO] [stderr] Compiling syn v1.0.30 [INFO] [stderr] Compiling ublox_derive v0.0.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 23.25s [INFO] running `"docker" "inspect" "1427b8af10b4265a1a3fc090b78e9823842e80c6acb0b963ad1c4cf538ec9f15"` [INFO] running `"docker" "rm" "-f" "1427b8af10b4265a1a3fc090b78e9823842e80c6acb0b963ad1c4cf538ec9f15"` [INFO] [stdout] 1427b8af10b4265a1a3fc090b78e9823842e80c6acb0b963ad1c4cf538ec9f15 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1.44.0" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] c71c765b9bbe9602494b51d8a325a503e083e0b5e444de9348af976345cd51b7 [INFO] running `"docker" "start" "-a" "c71c765b9bbe9602494b51d8a325a503e083e0b5e444de9348af976345cd51b7"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling ublox_derive v0.0.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 5.43s [INFO] running `"docker" "inspect" "c71c765b9bbe9602494b51d8a325a503e083e0b5e444de9348af976345cd51b7"` [INFO] running `"docker" "rm" "-f" "c71c765b9bbe9602494b51d8a325a503e083e0b5e444de9348af976345cd51b7"` [INFO] [stdout] c71c765b9bbe9602494b51d8a325a503e083e0b5e444de9348af976345cd51b7 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1.44.0" "test" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] bd62d038296ce8e2645a26bd129883c35a82dcc9f635b96b36642c7f1980c619 [INFO] running `"docker" "start" "-a" "bd62d038296ce8e2645a26bd129883c35a82dcc9f635b96b36642c7f1980c619"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.01s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/ublox_derive-dc56b3b44c291dc1 [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test tests::test_extend_bitflags ... ok [INFO] [stdout] test tests::test_ubx_packet_recv_dyn_len ... ok [INFO] [stdout] test tests::test_upgrade_enum ... ok [INFO] [stdout] test tests::test_define_recv_packets ... FAILED [INFO] [stdout] test tests::test_ubx_packet_recv_simple ... FAILED [INFO] [stdout] test tests::test_ubx_packet_send ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- tests::test_define_recv_packets stdout ---- [INFO] [stdout] warning=Internal rustfmt error [INFO] [stdout] warning=Internal rustfmt error [INFO] [stdout] first mismatch: [INFO] [stdout] e # [ doc = "All possible packets enum" ] pub enum PacketRef < 'a > { Pack1 ( Pack1Ref < 'a > ) , Pack2 ( Pack2Ref < 'a > ) , Unknown ( UnknownPacketRef < 'a > ) } impl < 'a > PacketRef < 'a > { pub fn class_and_msg_id ( & self ) -> ( u8 , u8 ) { match * self { PacketRef :: Pack1 ( _ ) => ( Pack1 :: CLASS , Pack1 :: ID ) , PacketRef :: Pack2 ( _ ) => ( Pack2 :: CLASS , Pack2 :: ID ) , PacketRef :: Unknown ( ref pack ) => ( pack . class , pack . msg_id ) , } } } pub ( crate ) fn match_packet ( class : u8 , msg_id : u8 , payload : & [ u8 ] , ) -> Result < PacketRef , ParserError > { match ( class , msg_id ) { ( Pack1 :: CLASS , Pack1 :: ID ) if < Pack1Ref > :: validate ( payload ) . is_ok ( ) => { Ok ( PacketRef :: Pack1 ( Pack1Ref ( payload ) ) ) } ( Pack2 :: CLASS , Pack2 :: ID ) if < Pack2Ref > :: validate ( payload ) . is_ok ( ) => { Ok ( PacketRef :: Pack2 ( Pack2Ref ( payload ) ) ) } _ => Ok ( PacketRef :: Unknown ( UnknownPacketRef { payload , class , msg_id , } ) ) , } } const fn max_u16 ( a : u16 , b : u16 ) -> u16 { [ a , b ] [ ( a < b ) as usize ] } pub ( crate ) const MAX_PAYLOAD_LEN : u16 = max_u16 ( Pack2 :: MAX_PAYLOAD_LEN , max_u16 ( Pack1 :: MAX_PAYLOAD_LEN , 0u16 ) ) ; [INFO] [stdout] g # [ doc = "All possible packets enum" ] pub enum PacketRef < 'a > { Pack1 ( Pack1Ref < 'a > ) , Pack2 ( Pack2Ref < 'a > ) , Unknown ( UnknownPacketRef < 'a > ) } impl < 'a > PacketRef < 'a > { pub fn class_and_msg_id ( & self ) -> ( u8 , u8 ) { match * self { PacketRef :: Pack1 ( _ ) => ( Pack1 :: CLASS , Pack1 :: ID ) , PacketRef :: Pack2 ( _ ) => ( Pack2 :: CLASS , Pack2 :: ID ) , PacketRef :: Unknown ( ref pack ) => ( pack . class , pack . msg_id ) , } } } pub ( crate ) fn match_packet ( class : u8 , msg_id : u8 , payload : & [ u8 ] ) -> Result < PacketRef , ParserError > { match ( class , msg_id ) { ( Pack1 :: CLASS , Pack1 :: ID ) if < Pack1Ref > :: validate ( payload ) . is_ok ( ) => { Ok ( PacketRef :: Pack1 ( Pack1Ref ( payload ) ) ) } ( Pack2 :: CLASS , Pack2 :: ID ) if < Pack2Ref > :: validate ( payload ) . is_ok ( ) => { Ok ( PacketRef :: Pack2 ( Pack2Ref ( payload ) ) ) } _ => Ok ( PacketRef :: Unknown ( UnknownPacketRef { payload , class , msg_id } ) ) , } } const fn max_u16 ( a : u16 , b : u16 ) -> u16 { [ a , b ] [ ( a < b ) as usize ] } pub ( crate ) const MAX_PAYLOAD_LEN : u16 = max_u16 ( Pack2 :: MAX_PAYLOAD_LEN , max_u16 ( Pack1 :: MAX_PAYLOAD_LEN , 0u16 ) ) ; [INFO] [stdout] thread 'tests::test_define_recv_packets' panicked at 'Expect: [INFO] [stdout] # [ doc = "All possible packets enum" ] pub enum PacketRef < 'a > { Pack1 ( Pack1Ref < 'a > ) , Pack2 ( Pack2Ref < 'a > ) , Unknown ( UnknownPacketRef < 'a > ) } impl < 'a > PacketRef < 'a > { pub fn class_and_msg_id ( & self ) -> ( u8 , u8 ) { match * self { PacketRef :: Pack1 ( _ ) => ( Pack1 :: CLASS , Pack1 :: ID ) , PacketRef :: Pack2 ( _ ) => ( Pack2 :: CLASS , Pack2 :: ID ) , PacketRef :: Unknown ( ref pack ) => ( pack . class , pack . msg_id ) , } } } pub ( crate ) fn match_packet ( class : u8 , msg_id : u8 , payload : & [ u8 ] , ) -> Result < PacketRef , ParserError > { match ( class , msg_id ) { ( Pack1 :: CLASS , Pack1 :: ID ) if < Pack1Ref > :: validate ( payload ) . is_ok ( ) => { Ok ( PacketRef :: Pack1 ( Pack1Ref ( payload ) ) ) } ( Pack2 :: CLASS , Pack2 :: ID ) if < Pack2Ref > :: validate ( payload ) . is_ok ( ) => { Ok ( PacketRef :: Pack2 ( Pack2Ref ( payload ) ) ) } _ => Ok ( PacketRef :: Unknown ( UnknownPacketRef { payload , class , msg_id , } ) ) , } } const fn max_u16 ( a : u16 , b : u16 ) -> u16 { [ a , b ] [ ( a < b ) as usize ] } pub ( crate ) const MAX_PAYLOAD_LEN : u16 = max_u16 ( Pack2 :: MAX_PAYLOAD_LEN , max_u16 ( Pack1 :: MAX_PAYLOAD_LEN , 0u16 ) ) ; [INFO] [stdout] Got: [INFO] [stdout] # [ doc = "All possible packets enum" ] pub enum PacketRef < 'a > { Pack1 ( Pack1Ref < 'a > ) , Pack2 ( Pack2Ref < 'a > ) , Unknown ( UnknownPacketRef < 'a > ) } impl < 'a > PacketRef < 'a > { pub fn class_and_msg_id ( & self ) -> ( u8 , u8 ) { match * self { PacketRef :: Pack1 ( _ ) => ( Pack1 :: CLASS , Pack1 :: ID ) , PacketRef :: Pack2 ( _ ) => ( Pack2 :: CLASS , Pack2 :: ID ) , PacketRef :: Unknown ( ref pack ) => ( pack . class , pack . msg_id ) , } } } pub ( crate ) fn match_packet ( class : u8 , msg_id : u8 , payload : & [ u8 ] ) -> Result < PacketRef , ParserError > { match ( class , msg_id ) { ( Pack1 :: CLASS , Pack1 :: ID ) if < Pack1Ref > :: validate ( payload ) . is_ok ( ) => { Ok ( PacketRef :: Pack1 ( Pack1Ref ( payload ) ) ) } ( Pack2 :: CLASS , Pack2 :: ID ) if < Pack2Ref > :: validate ( payload ) . is_ok ( ) => { Ok ( PacketRef :: Pack2 ( Pack2Ref ( payload ) ) ) } _ => Ok ( PacketRef :: Unknown ( UnknownPacketRef { payload , class , msg_id } ) ) , } } const fn max_u16 ( a : u16 , b : u16 ) -> u16 { [ a , b ] [ ( a < b ) as usize ] } pub ( crate ) const MAX_PAYLOAD_LEN : u16 = max_u16 ( Pack2 :: MAX_PAYLOAD_LEN , max_u16 ( Pack1 :: MAX_PAYLOAD_LEN , 0u16 ) ) ; [INFO] [stdout] ', src/tests.rs:503:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x7f3324ba5ab4 - backtrace::backtrace::libunwind::trace::hc1c4a1d8ad423b97 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86 [INFO] [stdout] 1: 0x7f3324ba5ab4 - backtrace::backtrace::trace_unsynchronized::h82274781060cb056 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66 [INFO] [stdout] 2: 0x7f3324ba5ab4 - std::sys_common::backtrace::_print_fmt::h2a45d89b653a4da8 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:78 [INFO] [stdout] 3: 0x7f3324ba5ab4 - ::fmt::h41a0a93ab85e6aa1 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:59 [INFO] [stdout] 4: 0x7f3324be40bc - core::fmt::write::hdaea18585065a96d [INFO] [stdout] at src/libcore/fmt/mod.rs:1069 [INFO] [stdout] 5: 0x7f3324e4f6d5 - std::io::Write::write_fmt::h42f0550b6bd39c6e [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/io/mod.rs:1504 [INFO] [stdout] 6: 0x7f3324b91eb1 - std::io::impls::>::write_fmt::h223d7b7033cad46d [INFO] [stdout] at src/libstd/io/impls.rs:156 [INFO] [stdout] 7: 0x7f3324baaab5 - std::sys_common::backtrace::_print::hd95f9978cc145ca4 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:62 [INFO] [stdout] 8: 0x7f3324baaab5 - std::sys_common::backtrace::print::hfb25ca2291be47d0 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:49 [INFO] [stdout] 9: 0x7f3324baaab5 - std::panicking::default_hook::{{closure}}::h44f76cee5dc8591c [INFO] [stdout] at src/libstd/panicking.rs:198 [INFO] [stdout] 10: 0x7f3324baa79b - std::panicking::default_hook::h198e1a712910f1e6 [INFO] [stdout] at src/libstd/panicking.rs:215 [INFO] [stdout] 11: 0x7f3324bab235 - std::panicking::rust_panic_with_hook::hc0b4730bb8013f9d [INFO] [stdout] at src/libstd/panicking.rs:515 [INFO] [stdout] 12: 0x7f3324baad4b - rust_begin_unwind [INFO] [stdout] at src/libstd/panicking.rs:419 [INFO] [stdout] 13: 0x7f3324baacbb - std::panicking::begin_panic_fmt::h3693eb684a4f728c [INFO] [stdout] at src/libstd/panicking.rs:373 [INFO] [stdout] 14: 0x56069a5e37c6 - ublox_derive::tests::run_compare_test::h8867b63a821f27e6 [INFO] [stdout] at src/tests.rs:503 [INFO] [stdout] 15: 0x56069a62520c - ublox_derive::tests::test_define_recv_packets::h997f5f9ea6fe3138 [INFO] [stdout] at src/tests.rs:386 [INFO] [stdout] 16: 0x56069a61c06a - ublox_derive::tests::test_define_recv_packets::{{closure}}::he5d5da2a49db9306 [INFO] [stdout] at src/tests.rs:373 [INFO] [stdout] 17: 0x56069a6d40ce - core::ops::function::FnOnce::call_once::h189b7f7c8623b04a [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/ops/function.rs:232 [INFO] [stdout] 18: 0x7f3324e7a336 - as core::ops::function::FnOnce>::call_once::hc165f65f4331a55c [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008 [INFO] [stdout] 19: 0x7f3324e7a336 - as core::ops::function::FnOnce<()>>::call_once::hb89f1f769cad07ce [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:318 [INFO] [stdout] 20: 0x7f3324e7a336 - std::panicking::try::do_call::h104f7f3dae5a1b29 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:331 [INFO] [stdout] 21: 0x7f3324e7a336 - std::panicking::try::h0e20f01361cba753 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:274 [INFO] [stdout] 22: 0x7f3324e7a336 - std::panic::catch_unwind::h0bd0c84b5f4cd121 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:394 [INFO] [stdout] 23: 0x7f3324e7a336 - test::run_test_in_process::hf34c22adfeb6853d [INFO] [stdout] at src/libtest/lib.rs:541 [INFO] [stdout] 24: 0x7f3324e7a336 - test::run_test::run_test_inner::{{closure}}::h40d568b4c10a12f1 [INFO] [stdout] at src/libtest/lib.rs:450 [INFO] [stdout] 25: 0x7f3324e4eb86 - std::sys_common::backtrace::__rust_begin_short_backtrace::hffd9774ad3f2d778 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/sys_common/backtrace.rs:130 [INFO] [stdout] 26: 0x7f3324e54bd5 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h4594020476cf52d4 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/thread/mod.rs:475 [INFO] [stdout] 27: 0x7f3324e54bd5 - as core::ops::function::FnOnce<()>>::call_once::h9d0a6d45b73e29e4 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:318 [INFO] [stdout] 28: 0x7f3324e54bd5 - std::panicking::try::do_call::h902fd77b30bb3bb7 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:331 [INFO] [stdout] 29: 0x7f3324e54bd5 - std::panicking::try::hc17d3a628e65d49d [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:274 [INFO] [stdout] 30: 0x7f3324e54bd5 - std::panic::catch_unwind::h9c9d49cbb6b18017 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:394 [INFO] [stdout] 31: 0x7f3324e54bd5 - std::thread::Builder::spawn_unchecked::{{closure}}::h6a6f5a333fd631a2 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/thread/mod.rs:474 [INFO] [stdout] 32: 0x7f3324e54bd5 - core::ops::function::FnOnce::call_once{{vtable.shim}}::ha6fb197e0ce57f73 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/ops/function.rs:232 [INFO] [stdout] 33: 0x7f3324bbb2aa - as core::ops::function::FnOnce>::call_once::h1f1fac7de7dd9691 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008 [INFO] [stdout] 34: 0x7f3324bbb2aa - as core::ops::function::FnOnce>::call_once::ha031f48633a6af54 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008 [INFO] [stdout] 35: 0x7f3324bbb2aa - std::sys::unix::thread::Thread::new::thread_start::h241864caf436e182 [INFO] [stdout] at src/libstd/sys/unix/thread.rs:87 [INFO] [stdout] 36: 0x7f3324afc609 - start_thread [INFO] [stdout] 37: 0x7f3324a08103 - __clone [INFO] [stdout] 38: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tests::test_ubx_packet_recv_simple stdout ---- [INFO] [stdout] warning=Internal rustfmt error [INFO] [stdout] warning=Internal rustfmt error [INFO] [stdout] first mismatch: [INFO] [stdout] e # [ doc = "Some comment" ] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = Some ( 16u16 ) ; const MAX_PAYLOAD_LEN : u16 = 16u16 ; } # [ doc = "Some comment" ] # [ doc = "It is just reference to internal parser's buffer" ] pub struct TestRef < 'a > ( & 'a [ u8 ] ) ; impl < 'a > TestRef < 'a > { # [ doc = "" ] # [ inline ] pub fn itow ( & self ) -> u32 { < u32 > :: from_le_bytes ( [ self . 0 [ 0usize ] , self . 0 [ 1usize ] , self . 0 [ 2usize ] , self . 0 [ 3usize ] ] ) } # [ doc = "this is lat" ] # [ inline ] pub fn lat_degrees ( & self ) -> f64 { let val = < i32 > :: from_le_bytes ( [ self . 0 [ 4usize ] , self . 0 [ 5usize ] , self . 0 [ 6usize ] , self . 0 [ 7usize ] ] ) ; let val = < f64 > :: from ( val ) ; val * 1e-7 } # [ doc = "this is a" ] # [ inline ] pub fn a ( & self ) -> u8 { self . 0 [ 8usize ] } # [ doc = "" ] # [ inline ] pub fn reserved1 ( & self ) -> [ u8 ; 5 ] { [ self . 0 [ 9usize ] , self . 0 [ 10usize ] , self . 0 [ 11usize ] , self . 0 [ 12usize ] , self . 0 [ 13usize ] , ] } # [ doc = "" ] # [ inline ] pub fn flags ( & self ) -> Flags { let val = self . 0 [ 14usize ] ; < Flags > :: from_unchecked ( val ) } # [ doc = "" ] # [ inline ] pub fn b ( & self ) -> i8 { < i8 > :: from_le_bytes ( [ self . 0 [ 15usize ] ] ) } fn validate ( payload : & [ u8 ] ) -> Result < ( ) , ParserError > { let expect = 16usize ; let got = payload . len ( ) ; if got == expect { let val = payload [ 14usize ] ; if ! < Flags > :: is_valid ( val ) { return Err ( ParserError :: InvalidField { packet : "Test" , field : stringify ! ( flags ) } ) ; } Ok ( ( ) ) } else { Err ( ParserError :: InvalidPacketLen { packet : "Test" , expect , got } ) } } } [INFO] [stdout] g # [ doc = "Some comment" ] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = Some ( 16u16 ) ; const MAX_PAYLOAD_LEN : u16 = 16u16 ; } # [ doc = "Some comment" ] # [ doc = "It is just reference to internal parser's buffer" ] pub struct TestRef < 'a > ( & 'a [ u8 ] ) ; impl < 'a > TestRef < 'a > { # [ doc = "" ] # [ inline ] pub fn itow ( & self ) -> u32 { < u32 > :: from_le_bytes ( [ self . 0 [ 0usize ] , self . 0 [ 1usize ] , self . 0 [ 2usize ] , self . 0 [ 3usize ] ] ) } # [ doc = "this is lat" ] # [ inline ] pub fn lat_degrees ( & self ) -> f64 { let val = < i32 > :: from_le_bytes ( [ self . 0 [ 4usize ] , self . 0 [ 5usize ] , self . 0 [ 6usize ] , self . 0 [ 7usize ] ] ) ; let val = < f64 > :: from ( val ) ; val * 1e-7 } # [ doc = "this is a" ] # [ inline ] pub fn a ( & self ) -> u8 { self . 0 [ 8usize ] } # [ doc = "" ] # [ inline ] pub fn reserved1 ( & self ) -> [ u8 ; 5 ] { [ self . 0 [ 9usize ] , self . 0 [ 10usize ] , self . 0 [ 11usize ] , self . 0 [ 12usize ] , self . 0 [ 13usize ] ] } # [ doc = "" ] # [ inline ] pub fn flags ( & self ) -> Flags { let val = self . 0 [ 14usize ] ; < Flags > :: from_unchecked ( val ) } # [ doc = "" ] # [ inline ] pub fn b ( & self ) -> i8 { < i8 > :: from_le_bytes ( [ self . 0 [ 15usize ] ] ) } fn validate ( payload : & [ u8 ] ) -> Result < ( ) , ParserError > { let expect = 16usize ; let got = payload . len ( ) ; if got == expect { let val = payload [ 14usize ] ; if ! < Flags > :: is_valid ( val ) { return Err ( ParserError :: InvalidField { packet : "Test" , field : stringify ! ( flags ) } ) ; } Ok ( ( ) ) } else { Err ( ParserError :: InvalidPacketLen { packet : "Test" , expect , got } ) } } } [INFO] [stdout] thread 'tests::test_ubx_packet_recv_simple' panicked at 'Expect: [INFO] [stdout] # [ doc = "Some comment" ] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = Some ( 16u16 ) ; const MAX_PAYLOAD_LEN : u16 = 16u16 ; } # [ doc = "Some comment" ] # [ doc = "It is just reference to internal parser's buffer" ] pub struct TestRef < 'a > ( & 'a [ u8 ] ) ; impl < 'a > TestRef < 'a > { # [ doc = "" ] # [ inline ] pub fn itow ( & self ) -> u32 { < u32 > :: from_le_bytes ( [ self . 0 [ 0usize ] , self . 0 [ 1usize ] , self . 0 [ 2usize ] , self . 0 [ 3usize ] ] ) } # [ doc = "this is lat" ] # [ inline ] pub fn lat_degrees ( & self ) -> f64 { let val = < i32 > :: from_le_bytes ( [ self . 0 [ 4usize ] , self . 0 [ 5usize ] , self . 0 [ 6usize ] , self . 0 [ 7usize ] ] ) ; let val = < f64 > :: from ( val ) ; val * 1e-7 } # [ doc = "this is a" ] # [ inline ] pub fn a ( & self ) -> u8 { self . 0 [ 8usize ] } # [ doc = "" ] # [ inline ] pub fn reserved1 ( & self ) -> [ u8 ; 5 ] { [ self . 0 [ 9usize ] , self . 0 [ 10usize ] , self . 0 [ 11usize ] , self . 0 [ 12usize ] , self . 0 [ 13usize ] , ] } # [ doc = "" ] # [ inline ] pub fn flags ( & self ) -> Flags { let val = self . 0 [ 14usize ] ; < Flags > :: from_unchecked ( val ) } # [ doc = "" ] # [ inline ] pub fn b ( & self ) -> i8 { < i8 > :: from_le_bytes ( [ self . 0 [ 15usize ] ] ) } fn validate ( payload : & [ u8 ] ) -> Result < ( ) , ParserError > { let expect = 16usize ; let got = payload . len ( ) ; if got == expect { let val = payload [ 14usize ] ; if ! < Flags > :: is_valid ( val ) { return Err ( ParserError :: InvalidField { packet : "Test" , field : stringify ! ( flags ) } ) ; } Ok ( ( ) ) } else { Err ( ParserError :: InvalidPacketLen { packet : "Test" , expect , got } ) } } } [INFO] [stdout] Got: [INFO] [stdout] # [ doc = "Some comment" ] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = Some ( 16u16 ) ; const MAX_PAYLOAD_LEN : u16 = 16u16 ; } # [ doc = "Some comment" ] # [ doc = "It is just reference to internal parser's buffer" ] pub struct TestRef < 'a > ( & 'a [ u8 ] ) ; impl < 'a > TestRef < 'a > { # [ doc = "" ] # [ inline ] pub fn itow ( & self ) -> u32 { < u32 > :: from_le_bytes ( [ self . 0 [ 0usize ] , self . 0 [ 1usize ] , self . 0 [ 2usize ] , self . 0 [ 3usize ] ] ) } # [ doc = "this is lat" ] # [ inline ] pub fn lat_degrees ( & self ) -> f64 { let val = < i32 > :: from_le_bytes ( [ self . 0 [ 4usize ] , self . 0 [ 5usize ] , self . 0 [ 6usize ] , self . 0 [ 7usize ] ] ) ; let val = < f64 > :: from ( val ) ; val * 1e-7 } # [ doc = "this is a" ] # [ inline ] pub fn a ( & self ) -> u8 { self . 0 [ 8usize ] } # [ doc = "" ] # [ inline ] pub fn reserved1 ( & self ) -> [ u8 ; 5 ] { [ self . 0 [ 9usize ] , self . 0 [ 10usize ] , self . 0 [ 11usize ] , self . 0 [ 12usize ] , self . 0 [ 13usize ] ] } # [ doc = "" ] # [ inline ] pub fn flags ( & self ) -> Flags { let val = self . 0 [ 14usize ] ; < Flags > :: from_unchecked ( val ) } # [ doc = "" ] # [ inline ] pub fn b ( & self ) -> i8 { < i8 > :: from_le_bytes ( [ self . 0 [ 15usize ] ] ) } fn validate ( payload : & [ u8 ] ) -> Result < ( ) , ParserError > { let expect = 16usize ; let got = payload . len ( ) ; if got == expect { let val = payload [ 14usize ] ; if ! < Flags > :: is_valid ( val ) { return Err ( ParserError :: InvalidField { packet : "Test" , field : stringify ! ( flags ) } ) ; } Ok ( ( ) ) } else { Err ( ParserError :: InvalidPacketLen { packet : "Test" , expect , got } ) } } } [INFO] [stdout] ', src/tests.rs:503:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x7f3324ba5ab4 - backtrace::backtrace::libunwind::trace::hc1c4a1d8ad423b97 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86 [INFO] [stdout] 1: 0x7f3324ba5ab4 - backtrace::backtrace::trace_unsynchronized::h82274781060cb056 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66 [INFO] [stdout] 2: 0x7f3324ba5ab4 - std::sys_common::backtrace::_print_fmt::h2a45d89b653a4da8 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:78 [INFO] [stdout] 3: 0x7f3324ba5ab4 - ::fmt::h41a0a93ab85e6aa1 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:59 [INFO] [stdout] 4: 0x7f3324be40bc - core::fmt::write::hdaea18585065a96d [INFO] [stdout] at src/libcore/fmt/mod.rs:1069 [INFO] [stdout] 5: 0x7f3324e4f6d5 - std::io::Write::write_fmt::h42f0550b6bd39c6e [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/io/mod.rs:1504 [INFO] [stdout] 6: 0x7f3324b91eb1 - std::io::impls::>::write_fmt::h223d7b7033cad46d [INFO] [stdout] at src/libstd/io/impls.rs:156 [INFO] [stdout] 7: 0x7f3324baaab5 - std::sys_common::backtrace::_print::hd95f9978cc145ca4 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:62 [INFO] [stdout] 8: 0x7f3324baaab5 - std::sys_common::backtrace::print::hfb25ca2291be47d0 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:49 [INFO] [stdout] 9: 0x7f3324baaab5 - std::panicking::default_hook::{{closure}}::h44f76cee5dc8591c [INFO] [stdout] at src/libstd/panicking.rs:198 [INFO] [stdout] 10: 0x7f3324baa79b - std::panicking::default_hook::h198e1a712910f1e6 [INFO] [stdout] at src/libstd/panicking.rs:215 [INFO] [stdout] 11: 0x7f3324bab235 - std::panicking::rust_panic_with_hook::hc0b4730bb8013f9d [INFO] [stdout] at src/libstd/panicking.rs:515 [INFO] [stdout] 12: 0x7f3324baad4b - rust_begin_unwind [INFO] [stdout] at src/libstd/panicking.rs:419 [INFO] [stdout] 13: 0x7f3324baacbb - std::panicking::begin_panic_fmt::h3693eb684a4f728c [INFO] [stdout] at src/libstd/panicking.rs:373 [INFO] [stdout] 14: 0x56069a5e37c6 - ublox_derive::tests::run_compare_test::h8867b63a821f27e6 [INFO] [stdout] at src/tests.rs:503 [INFO] [stdout] 15: 0x56069a5f5b51 - ublox_derive::tests::test_ubx_packet_recv_simple::hbad27af7fdff239c [INFO] [stdout] at src/tests.rs:37 [INFO] [stdout] 16: 0x56069a5e530a - ublox_derive::tests::test_ubx_packet_recv_simple::{{closure}}::h638350b61051a975 [INFO] [stdout] at src/tests.rs:12 [INFO] [stdout] 17: 0x56069a6d401e - core::ops::function::FnOnce::call_once::h0d6fad5016b73929 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/ops/function.rs:232 [INFO] [stdout] 18: 0x7f3324e7a336 - as core::ops::function::FnOnce>::call_once::hc165f65f4331a55c [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008 [INFO] [stdout] 19: 0x7f3324e7a336 - as core::ops::function::FnOnce<()>>::call_once::hb89f1f769cad07ce [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:318 [INFO] [stdout] 20: 0x7f3324e7a336 - std::panicking::try::do_call::h104f7f3dae5a1b29 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:331 [INFO] [stdout] 21: 0x7f3324e7a336 - std::panicking::try::h0e20f01361cba753 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:274 [INFO] [stdout] 22: 0x7f3324e7a336 - std::panic::catch_unwind::h0bd0c84b5f4cd121 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:394 [INFO] [stdout] 23: 0x7f3324e7a336 - test::run_test_in_process::hf34c22adfeb6853d [INFO] [stdout] at src/libtest/lib.rs:541 [INFO] [stdout] 24: 0x7f3324e7a336 - test::run_test::run_test_inner::{{closure}}::h40d568b4c10a12f1 [INFO] [stdout] at src/libtest/lib.rs:450 [INFO] [stdout] 25: 0x7f3324e4eb86 - std::sys_common::backtrace::__rust_begin_short_backtrace::hffd9774ad3f2d778 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/sys_common/backtrace.rs:130 [INFO] [stdout] 26: 0x7f3324e54bd5 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h4594020476cf52d4 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/thread/mod.rs:475 [INFO] [stdout] 27: 0x7f3324e54bd5 - as core::ops::function::FnOnce<()>>::call_once::h9d0a6d45b73e29e4 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:318 [INFO] [stdout] 28: 0x7f3324e54bd5 - std::panicking::try::do_call::h902fd77b30bb3bb7 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:331 [INFO] [stdout] 29: 0x7f3324e54bd5 - std::panicking::try::hc17d3a628e65d49d [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:274 [INFO] [stdout] 30: 0x7f3324e54bd5 - std::panic::catch_unwind::h9c9d49cbb6b18017 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:394 [INFO] [stdout] 31: 0x7f3324e54bd5 - std::thread::Builder::spawn_unchecked::{{closure}}::h6a6f5a333fd631a2 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/thread/mod.rs:474 [INFO] [stdout] 32: 0x7f3324e54bd5 - core::ops::function::FnOnce::call_once{{vtable.shim}}::ha6fb197e0ce57f73 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/ops/function.rs:232 [INFO] [stdout] 33: 0x7f3324bbb2aa - as core::ops::function::FnOnce>::call_once::h1f1fac7de7dd9691 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008 [INFO] [stdout] 34: 0x7f3324bbb2aa - as core::ops::function::FnOnce>::call_once::ha031f48633a6af54 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008 [INFO] [stdout] 35: 0x7f3324bbb2aa - std::sys::unix::thread::Thread::new::thread_start::h241864caf436e182 [INFO] [stdout] at src/libstd/sys/unix/thread.rs:87 [INFO] [stdout] 36: 0x7f3324afc609 - start_thread [INFO] [stdout] 37: 0x7f3324a08103 - __clone [INFO] [stdout] 38: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tests::test_ubx_packet_send stdout ---- [INFO] [stdout] warning=Internal rustfmt error [INFO] [stdout] warning=Internal rustfmt error [INFO] [stdout] first mismatch: [INFO] [stdout] e # [ doc = "Some comment" ] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = Some ( 9u16 ) ; const MAX_PAYLOAD_LEN : u16 = 9u16 ; } # [ doc = "Some comment" ] # [ doc = "Struct that is used as \"builder\" for packet" ] # [ derive ( Default ) ] pub struct TestBuilder { # [ doc = "" ] pub itow : u32 , # [ doc = "this is lat" ] pub lat_degrees : f64 , # [ doc = "this is a" ] pub a : u8 , } impl TestBuilder { pub const PACKET_LEN : usize = 17usize ; # [ inline ] pub fn into_packet_bytes ( self ) -> [ u8 ; Self :: PACKET_LEN ] { let mut ret = [ 0u8 ; Self :: PACKET_LEN ] ; ret [ 0 ] = SYNC_CHAR_1 ; ret [ 1 ] = SYNC_CHAR_2 ; ret [ 2 ] = Test :: CLASS ; ret [ 3 ] = Test :: ID ; let pack_len_bytes = 9u16 . to_le_bytes ( ) ; ret [ 4 ] = pack_len_bytes [ 0 ] ; ret [ 5 ] = pack_len_bytes [ 1 ] ; let bytes = self . itow . to_le_bytes ( ) ; ret [ 6usize ] = bytes [ 0usize ] ; ret [ 7usize ] = bytes [ 1usize ] ; ret [ 8usize ] = bytes [ 2usize ] ; ret [ 9usize ] = bytes [ 3usize ] ; let bytes = ScaleBack :: < f64 > ( 1. / 1e-7 ) . as_i32 ( self . lat_degrees ) . to_le_bytes ( ) ; ret [ 10usize ] = bytes [ 0usize ] ; ret [ 11usize ] = bytes [ 1usize ] ; ret [ 12usize ] = bytes [ 2usize ] ; ret [ 13usize ] = bytes [ 3usize ] ; let bytes = self . a . to_le_bytes ( ) ; ret [ 14usize ] = bytes [ 0usize ] ; let ( ck_a , ck_b ) = ubx_checksum ( & ret [ 2 .. 17usize - 2 ] ) ; ret [ 17usize - 2 ] = ck_a ; ret [ 17usize - 1 ] = ck_b ; ret } } impl From < TestBuilder > for [ u8 ; 17usize ] { fn from ( x : TestBuilder ) -> Self { x . into_packet_bytes ( ) } } impl UbxPacketCreator for TestBuilder { # [ inline ] fn create_packet < T : MemWriter > ( self , out : & mut T ) -> Result < ( ) , MemWriterError < T :: Error >> { out . reserve_allocate ( 17usize ) ? ; let len_bytes = 9u16 . to_le_bytes ( ) ; let header = [ SYNC_CHAR_1 , SYNC_CHAR_2 , Test :: CLASS , Test :: ID , len_bytes [ 0 ] , len_bytes [ 1 ] , ] ; out . write ( & header ) ? ; let mut checksum_calc = UbxChecksumCalc :: default ( ) ; checksum_calc . update ( & header [ 2 .. ] ) ; let bytes = self . itow . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let bytes = ScaleBack :: < f64 > ( 1. / 1e-7 ) . as_i32 ( self . lat_degrees ) . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let bytes = self . a . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let ( ck_a , ck_b ) = checksum_calc . result ( ) ; out . write ( & [ ck_a , ck_b ] ) ? ; Ok ( ( ) ) } } [INFO] [stdout] g # [ doc = "Some comment" ] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = Some ( 9u16 ) ; const MAX_PAYLOAD_LEN : u16 = 9u16 ; } # [ doc = "Some comment" ] # [ doc = "Struct that is used as \"builder\" for packet" ] # [ derive ( Default ) ] pub struct TestBuilder { # [ doc = "" ] pub itow : u32 , # [ doc = "this is lat" ] pub lat_degrees : f64 , # [ doc = "this is a" ] pub a : u8 } impl TestBuilder { pub const PACKET_LEN : usize = 17usize ; # [ inline ] pub fn into_packet_bytes ( self ) -> [ u8 ; Self :: PACKET_LEN ] { let mut ret = [ 0u8 ; Self :: PACKET_LEN ] ; ret [ 0 ] = SYNC_CHAR_1 ; ret [ 1 ] = SYNC_CHAR_2 ; ret [ 2 ] = Test :: CLASS ; ret [ 3 ] = Test :: ID ; let pack_len_bytes = 9u16 . to_le_bytes ( ) ; ret [ 4 ] = pack_len_bytes [ 0 ] ; ret [ 5 ] = pack_len_bytes [ 1 ] ; let bytes = self . itow . to_le_bytes ( ) ; ret [ 6usize ] = bytes [ 0usize ] ; ret [ 7usize ] = bytes [ 1usize ] ; ret [ 8usize ] = bytes [ 2usize ] ; ret [ 9usize ] = bytes [ 3usize ] ; let bytes = ScaleBack :: < f64 > ( 1. / 1e-7 ) . as_i32 ( self . lat_degrees ) . to_le_bytes ( ) ; ret [ 10usize ] = bytes [ 0usize ] ; ret [ 11usize ] = bytes [ 1usize ] ; ret [ 12usize ] = bytes [ 2usize ] ; ret [ 13usize ] = bytes [ 3usize ] ; let bytes = self . a . to_le_bytes ( ) ; ret [ 14usize ] = bytes [ 0usize ] ; let ( ck_a , ck_b ) = ubx_checksum ( & ret [ 2 .. 17usize - 2 ] ) ; ret [ 17usize - 2 ] = ck_a ; ret [ 17usize - 1 ] = ck_b ; ret } } impl From < TestBuilder > for [ u8 ; 17usize ] { fn from ( x : TestBuilder ) -> Self { x . into_packet_bytes ( ) } } impl UbxPacketCreator for TestBuilder { # [ inline ] fn create_packet < T : MemWriter > ( self , out : & mut T ) -> Result < ( ) , MemWriterError < T :: Error >> { out . reserve_allocate ( 17usize ) ? ; let len_bytes = 9u16 . to_le_bytes ( ) ; let header = [ SYNC_CHAR_1 , SYNC_CHAR_2 , Test :: CLASS , Test :: ID , len_bytes [ 0 ] , len_bytes [ 1 ] ] ; out . write ( & header ) ? ; let mut checksum_calc = UbxChecksumCalc :: default ( ) ; checksum_calc . update ( & header [ 2 .. ] ) ; let bytes = self . itow . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let bytes = ScaleBack :: < f64 > ( 1. / 1e-7 ) . as_i32 ( self . lat_degrees ) . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let bytes = self . a . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let ( ck_a , ck_b ) = checksum_calc . result ( ) ; out . write ( & [ ck_a , ck_b ] ) ? ; Ok ( ( ) ) } } [INFO] [stdout] thread 'tests::test_ubx_packet_send' panicked at 'Expect: [INFO] [stdout] # [ doc = "Some comment" ] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = Some ( 9u16 ) ; const MAX_PAYLOAD_LEN : u16 = 9u16 ; } # [ doc = "Some comment" ] # [ doc = "Struct that is used as \"builder\" for packet" ] # [ derive ( Default ) ] pub struct TestBuilder { # [ doc = "" ] pub itow : u32 , # [ doc = "this is lat" ] pub lat_degrees : f64 , # [ doc = "this is a" ] pub a : u8 , } impl TestBuilder { pub const PACKET_LEN : usize = 17usize ; # [ inline ] pub fn into_packet_bytes ( self ) -> [ u8 ; Self :: PACKET_LEN ] { let mut ret = [ 0u8 ; Self :: PACKET_LEN ] ; ret [ 0 ] = SYNC_CHAR_1 ; ret [ 1 ] = SYNC_CHAR_2 ; ret [ 2 ] = Test :: CLASS ; ret [ 3 ] = Test :: ID ; let pack_len_bytes = 9u16 . to_le_bytes ( ) ; ret [ 4 ] = pack_len_bytes [ 0 ] ; ret [ 5 ] = pack_len_bytes [ 1 ] ; let bytes = self . itow . to_le_bytes ( ) ; ret [ 6usize ] = bytes [ 0usize ] ; ret [ 7usize ] = bytes [ 1usize ] ; ret [ 8usize ] = bytes [ 2usize ] ; ret [ 9usize ] = bytes [ 3usize ] ; let bytes = ScaleBack :: < f64 > ( 1. / 1e-7 ) . as_i32 ( self . lat_degrees ) . to_le_bytes ( ) ; ret [ 10usize ] = bytes [ 0usize ] ; ret [ 11usize ] = bytes [ 1usize ] ; ret [ 12usize ] = bytes [ 2usize ] ; ret [ 13usize ] = bytes [ 3usize ] ; let bytes = self . a . to_le_bytes ( ) ; ret [ 14usize ] = bytes [ 0usize ] ; let ( ck_a , ck_b ) = ubx_checksum ( & ret [ 2 .. 17usize - 2 ] ) ; ret [ 17usize - 2 ] = ck_a ; ret [ 17usize - 1 ] = ck_b ; ret } } impl From < TestBuilder > for [ u8 ; 17usize ] { fn from ( x : TestBuilder ) -> Self { x . into_packet_bytes ( ) } } impl UbxPacketCreator for TestBuilder { # [ inline ] fn create_packet < T : MemWriter > ( self , out : & mut T ) -> Result < ( ) , MemWriterError < T :: Error >> { out . reserve_allocate ( 17usize ) ? ; let len_bytes = 9u16 . to_le_bytes ( ) ; let header = [ SYNC_CHAR_1 , SYNC_CHAR_2 , Test :: CLASS , Test :: ID , len_bytes [ 0 ] , len_bytes [ 1 ] , ] ; out . write ( & header ) ? ; let mut checksum_calc = UbxChecksumCalc :: default ( ) ; checksum_calc . update ( & header [ 2 .. ] ) ; let bytes = self . itow . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let bytes = ScaleBack :: < f64 > ( 1. / 1e-7 ) . as_i32 ( self . lat_degrees ) . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let bytes = self . a . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let ( ck_a , ck_b ) = checksum_calc . result ( ) ; out . write ( & [ ck_a , ck_b ] ) ? ; Ok ( ( ) ) } } [INFO] [stdout] Got: [INFO] [stdout] # [ doc = "Some comment" ] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = Some ( 9u16 ) ; const MAX_PAYLOAD_LEN : u16 = 9u16 ; } # [ doc = "Some comment" ] # [ doc = "Struct that is used as \"builder\" for packet" ] # [ derive ( Default ) ] pub struct TestBuilder { # [ doc = "" ] pub itow : u32 , # [ doc = "this is lat" ] pub lat_degrees : f64 , # [ doc = "this is a" ] pub a : u8 } impl TestBuilder { pub const PACKET_LEN : usize = 17usize ; # [ inline ] pub fn into_packet_bytes ( self ) -> [ u8 ; Self :: PACKET_LEN ] { let mut ret = [ 0u8 ; Self :: PACKET_LEN ] ; ret [ 0 ] = SYNC_CHAR_1 ; ret [ 1 ] = SYNC_CHAR_2 ; ret [ 2 ] = Test :: CLASS ; ret [ 3 ] = Test :: ID ; let pack_len_bytes = 9u16 . to_le_bytes ( ) ; ret [ 4 ] = pack_len_bytes [ 0 ] ; ret [ 5 ] = pack_len_bytes [ 1 ] ; let bytes = self . itow . to_le_bytes ( ) ; ret [ 6usize ] = bytes [ 0usize ] ; ret [ 7usize ] = bytes [ 1usize ] ; ret [ 8usize ] = bytes [ 2usize ] ; ret [ 9usize ] = bytes [ 3usize ] ; let bytes = ScaleBack :: < f64 > ( 1. / 1e-7 ) . as_i32 ( self . lat_degrees ) . to_le_bytes ( ) ; ret [ 10usize ] = bytes [ 0usize ] ; ret [ 11usize ] = bytes [ 1usize ] ; ret [ 12usize ] = bytes [ 2usize ] ; ret [ 13usize ] = bytes [ 3usize ] ; let bytes = self . a . to_le_bytes ( ) ; ret [ 14usize ] = bytes [ 0usize ] ; let ( ck_a , ck_b ) = ubx_checksum ( & ret [ 2 .. 17usize - 2 ] ) ; ret [ 17usize - 2 ] = ck_a ; ret [ 17usize - 1 ] = ck_b ; ret } } impl From < TestBuilder > for [ u8 ; 17usize ] { fn from ( x : TestBuilder ) -> Self { x . into_packet_bytes ( ) } } impl UbxPacketCreator for TestBuilder { # [ inline ] fn create_packet < T : MemWriter > ( self , out : & mut T ) -> Result < ( ) , MemWriterError < T :: Error >> { out . reserve_allocate ( 17usize ) ? ; let len_bytes = 9u16 . to_le_bytes ( ) ; let header = [ SYNC_CHAR_1 , SYNC_CHAR_2 , Test :: CLASS , Test :: ID , len_bytes [ 0 ] , len_bytes [ 1 ] ] ; out . write ( & header ) ? ; let mut checksum_calc = UbxChecksumCalc :: default ( ) ; checksum_calc . update ( & header [ 2 .. ] ) ; let bytes = self . itow . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let bytes = ScaleBack :: < f64 > ( 1. / 1e-7 ) . as_i32 ( self . lat_degrees ) . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let bytes = self . a . to_le_bytes ( ) ; out . write ( & bytes ) ? ; checksum_calc . update ( & bytes ) ; let ( ck_a , ck_b ) = checksum_calc . result ( ) ; out . write ( & [ ck_a , ck_b ] ) ? ; Ok ( ( ) ) } } [INFO] [stdout] ', src/tests.rs:503:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x7f3324ba5ab4 - backtrace::backtrace::libunwind::trace::hc1c4a1d8ad423b97 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86 [INFO] [stdout] 1: 0x7f3324ba5ab4 - backtrace::backtrace::trace_unsynchronized::h82274781060cb056 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66 [INFO] [stdout] 2: 0x7f3324ba5ab4 - std::sys_common::backtrace::_print_fmt::h2a45d89b653a4da8 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:78 [INFO] [stdout] 3: 0x7f3324ba5ab4 - ::fmt::h41a0a93ab85e6aa1 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:59 [INFO] [stdout] 4: 0x7f3324be40bc - core::fmt::write::hdaea18585065a96d [INFO] [stdout] at src/libcore/fmt/mod.rs:1069 [INFO] [stdout] 5: 0x7f3324e4f6d5 - std::io::Write::write_fmt::h42f0550b6bd39c6e [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/io/mod.rs:1504 [INFO] [stdout] 6: 0x7f3324b91eb1 - std::io::impls::>::write_fmt::h223d7b7033cad46d [INFO] [stdout] at src/libstd/io/impls.rs:156 [INFO] [stdout] 7: 0x7f3324baaab5 - std::sys_common::backtrace::_print::hd95f9978cc145ca4 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:62 [INFO] [stdout] 8: 0x7f3324baaab5 - std::sys_common::backtrace::print::hfb25ca2291be47d0 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:49 [INFO] [stdout] 9: 0x7f3324baaab5 - std::panicking::default_hook::{{closure}}::h44f76cee5dc8591c [INFO] [stdout] at src/libstd/panicking.rs:198 [INFO] [stdout] 10: 0x7f3324baa79b - std::panicking::default_hook::h198e1a712910f1e6 [INFO] [stdout] at src/libstd/panicking.rs:215 [INFO] [stdout] 11: 0x7f3324bab235 - std::panicking::rust_panic_with_hook::hc0b4730bb8013f9d [INFO] [stdout] at src/libstd/panicking.rs:515 [INFO] [stdout] 12: 0x7f3324baad4b - rust_begin_unwind [INFO] [stdout] at src/libstd/panicking.rs:419 [INFO] [stdout] 13: 0x7f3324baacbb - std::panicking::begin_panic_fmt::h3693eb684a4f728c [INFO] [stdout] at src/libstd/panicking.rs:373 [INFO] [stdout] 14: 0x56069a5e37c6 - ublox_derive::tests::run_compare_test::h8867b63a821f27e6 [INFO] [stdout] at src/tests.rs:503 [INFO] [stdout] 15: 0x56069a614516 - ublox_derive::tests::test_ubx_packet_send::h928730baf22b5ed1 [INFO] [stdout] at src/tests.rs:209 [INFO] [stdout] 16: 0x56069a60049a - ublox_derive::tests::test_ubx_packet_send::{{closure}}::h7aba8765c8abb35c [INFO] [stdout] at src/tests.rs:188 [INFO] [stdout] 17: 0x56069a6d436e - core::ops::function::FnOnce::call_once::hb9795025a02e63d1 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/ops/function.rs:232 [INFO] [stdout] 18: 0x7f3324e7a336 - as core::ops::function::FnOnce>::call_once::hc165f65f4331a55c [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008 [INFO] [stdout] 19: 0x7f3324e7a336 - as core::ops::function::FnOnce<()>>::call_once::hb89f1f769cad07ce [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:318 [INFO] [stdout] 20: 0x7f3324e7a336 - std::panicking::try::do_call::h104f7f3dae5a1b29 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:331 [INFO] [stdout] 21: 0x7f3324e7a336 - std::panicking::try::h0e20f01361cba753 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:274 [INFO] [stdout] 22: 0x7f3324e7a336 - std::panic::catch_unwind::h0bd0c84b5f4cd121 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:394 [INFO] [stdout] 23: 0x7f3324e7a336 - test::run_test_in_process::hf34c22adfeb6853d [INFO] [stdout] at src/libtest/lib.rs:541 [INFO] [stdout] 24: 0x7f3324e7a336 - test::run_test::run_test_inner::{{closure}}::h40d568b4c10a12f1 [INFO] [stdout] at src/libtest/lib.rs:450 [INFO] [stdout] 25: 0x7f3324e4eb86 - std::sys_common::backtrace::__rust_begin_short_backtrace::hffd9774ad3f2d778 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/sys_common/backtrace.rs:130 [INFO] [stdout] 26: 0x7f3324e54bd5 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h4594020476cf52d4 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/thread/mod.rs:475 [INFO] [stdout] 27: 0x7f3324e54bd5 - as core::ops::function::FnOnce<()>>::call_once::h9d0a6d45b73e29e4 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:318 [INFO] [stdout] 28: 0x7f3324e54bd5 - std::panicking::try::do_call::h902fd77b30bb3bb7 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:331 [INFO] [stdout] 29: 0x7f3324e54bd5 - std::panicking::try::hc17d3a628e65d49d [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panicking.rs:274 [INFO] [stdout] 30: 0x7f3324e54bd5 - std::panic::catch_unwind::h9c9d49cbb6b18017 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/panic.rs:394 [INFO] [stdout] 31: 0x7f3324e54bd5 - std::thread::Builder::spawn_unchecked::{{closure}}::h6a6f5a333fd631a2 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/thread/mod.rs:474 [INFO] [stdout] 32: 0x7f3324e54bd5 - core::ops::function::FnOnce::call_once{{vtable.shim}}::ha6fb197e0ce57f73 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libcore/ops/function.rs:232 [INFO] [stdout] 33: 0x7f3324bbb2aa - as core::ops::function::FnOnce>::call_once::h1f1fac7de7dd9691 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008 [INFO] [stdout] 34: 0x7f3324bbb2aa - as core::ops::function::FnOnce>::call_once::ha031f48633a6af54 [INFO] [stdout] at /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/liballoc/boxed.rs:1008 [INFO] [stdout] 35: 0x7f3324bbb2aa - std::sys::unix::thread::Thread::new::thread_start::h241864caf436e182 [INFO] [stdout] at src/libstd/sys/unix/thread.rs:87 [INFO] [stdout] 36: 0x7f3324afc609 - start_thread [INFO] [stdout] 37: 0x7f3324a08103 - __clone [INFO] [stdout] 38: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] tests::test_define_recv_packets [INFO] [stdout] tests::test_ubx_packet_recv_simple [INFO] [stdout] tests::test_ubx_packet_send [INFO] [stdout] [INFO] [stdout] test result: FAILED. 3 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--lib' [INFO] running `"docker" "inspect" "bd62d038296ce8e2645a26bd129883c35a82dcc9f635b96b36642c7f1980c619"` [INFO] running `"docker" "rm" "-f" "bd62d038296ce8e2645a26bd129883c35a82dcc9f635b96b36642c7f1980c619"` [INFO] [stdout] bd62d038296ce8e2645a26bd129883c35a82dcc9f635b96b36642c7f1980c619