[INFO] fetching crate ublox_derive 0.0.1... [INFO] testing ublox_derive-0.0.1 against beta-2020-07-24 for beta-1.46-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 beta-2020-07-24 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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 `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "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_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e054ce07883e456436f3fc358db1a34612cb10ddcd0666c9e374f804b951e84c [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "e054ce07883e456436f3fc358db1a34612cb10ddcd0666c9e374f804b951e84c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e054ce07883e456436f3fc358db1a34612cb10ddcd0666c9e374f804b951e84c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e054ce07883e456436f3fc358db1a34612cb10ddcd0666c9e374f804b951e84c", kill_on_drop: false }` [INFO] [stdout] e054ce07883e456436f3fc358db1a34612cb10ddcd0666c9e374f804b951e84c [INFO] running `Command { std: "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@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6ab8e21718d1ea9be43cd27c07bbf0317d54929aaf15c00cec00c19db6c5cc32 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "6ab8e21718d1ea9be43cd27c07bbf0317d54929aaf15c00cec00c19db6c5cc32", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling proc-macro2 v1.0.19 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling syn v1.0.37 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling ublox_derive v0.0.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 24.86s [INFO] running `Command { std: "docker" "inspect" "6ab8e21718d1ea9be43cd27c07bbf0317d54929aaf15c00cec00c19db6c5cc32", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6ab8e21718d1ea9be43cd27c07bbf0317d54929aaf15c00cec00c19db6c5cc32", kill_on_drop: false }` [INFO] [stdout] 6ab8e21718d1ea9be43cd27c07bbf0317d54929aaf15c00cec00c19db6c5cc32 [INFO] running `Command { std: "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@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b5ec4006d4222ac6d2a444f53643c3b7b7bba01bf9846511f5f32c99722b19c6 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "b5ec4006d4222ac6d2a444f53643c3b7b7bba01bf9846511f5f32c99722b19c6", kill_on_drop: false }` [INFO] [stderr] Compiling which v3.1.1 [INFO] [stderr] Compiling ublox_derive v0.0.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 7.67s [INFO] running `Command { std: "docker" "inspect" "b5ec4006d4222ac6d2a444f53643c3b7b7bba01bf9846511f5f32c99722b19c6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b5ec4006d4222ac6d2a444f53643c3b7b7bba01bf9846511f5f32c99722b19c6", kill_on_drop: false }` [INFO] [stdout] b5ec4006d4222ac6d2a444f53643c3b7b7bba01bf9846511f5f32c99722b19c6 [INFO] running `Command { std: "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@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] fd68881bc77b047e8e7bb1f9b77950a3819a295c51099700e08cdce97615261a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "fd68881bc77b047e8e7bb1f9b77950a3819a295c51099700e08cdce97615261a", kill_on_drop: false }` [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/ublox_derive-13651d5e1d138613 [INFO] [stdout] [INFO] [stdout] running 6 tests [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_recv_dyn_len ... ok [INFO] [stdout] test tests::test_upgrade_enum ... ok [INFO] [stdout] test tests::test_extend_bitflags ... ok [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: 0x7f8d68b7c8e5 - backtrace::backtrace::libunwind::trace::h5e2646fa3eddf2ea [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86 [INFO] [stdout] 1: 0x7f8d68b7c8e5 - backtrace::backtrace::trace_unsynchronized::hb95dd7f77ce47877 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66 [INFO] [stdout] 2: 0x7f8d68b7c8e5 - std::sys_common::backtrace::_print_fmt::h5e71b67af43fd70d [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:78 [INFO] [stdout] 3: 0x7f8d68b7c8e5 - ::fmt::hdb4a83d2b61107e5 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:59 [INFO] [stdout] 4: 0x7f8d68bb936c - core::fmt::write::ha20e7262fa3e8a7a [INFO] [stdout] at src/libcore/fmt/mod.rs:1076 [INFO] [stdout] 5: 0x7f8d68e23755 - std::io::Write::write_fmt::hd8ff364c7845d2d0 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/io/mod.rs:1537 [INFO] [stdout] 6: 0x7f8d68b68c31 - std::io::impls::>::write_fmt::h1c057ef6e8762996 [INFO] [stdout] at src/libstd/io/impls.rs:176 [INFO] [stdout] 7: 0x7f8d68b81780 - std::sys_common::backtrace::_print::h9c07314cc66ba539 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:62 [INFO] [stdout] 8: 0x7f8d68b81780 - std::sys_common::backtrace::print::hd1fd65f49a2d8544 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:49 [INFO] [stdout] 9: 0x7f8d68b81780 - std::panicking::default_hook::{{closure}}::h222da46485ab36fc [INFO] [stdout] at src/libstd/panicking.rs:198 [INFO] [stdout] 10: 0x7f8d68b8147a - std::panicking::default_hook::hc5868949d129ed00 [INFO] [stdout] at src/libstd/panicking.rs:214 [INFO] [stdout] 11: 0x7f8d68b81ef8 - std::panicking::rust_panic_with_hook::h26a6ab8b0993c0c8 [INFO] [stdout] at src/libstd/panicking.rs:530 [INFO] [stdout] 12: 0x7f8d68b81acb - rust_begin_unwind [INFO] [stdout] at src/libstd/panicking.rs:437 [INFO] [stdout] 13: 0x7f8d68b81a3b - std::panicking::begin_panic_fmt::h2ff295231415d4a6 [INFO] [stdout] at src/libstd/panicking.rs:391 [INFO] [stdout] 14: 0x562f31e5f7c6 - ublox_derive::tests::run_compare_test::h14f1719ae57111aa [INFO] [stdout] at src/tests.rs:503 [INFO] [stdout] 15: 0x562f31e75a04 - ublox_derive::tests::test_define_recv_packets::h59ec9e937c5e3d88 [INFO] [stdout] at src/tests.rs:386 [INFO] [stdout] 16: 0x562f31e72c0a - ublox_derive::tests::test_define_recv_packets::{{closure}}::h5d17d848e38e5f85 [INFO] [stdout] at src/tests.rs:373 [INFO] [stdout] 17: 0x562f31eb86ee - core::ops::function::FnOnce::call_once::hd303d2d3df280ce7 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libcore/ops/function.rs:233 [INFO] [stdout] 18: 0x7f8d68e4dbac - as core::ops::function::FnOnce>::call_once::h42148c33ed88c979 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/liballoc/boxed.rs:1081 [INFO] [stdout] 19: 0x7f8d68e4dbac - as core::ops::function::FnOnce<()>>::call_once::h759dc0b09d774665 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:318 [INFO] [stdout] 20: 0x7f8d68e4dbac - std::panicking::try::do_call::h676ad1fc9e9badea [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:348 [INFO] [stdout] 21: 0x7f8d68e4dbac - std::panicking::try::hee36a8727a3050b0 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:325 [INFO] [stdout] 22: 0x7f8d68e4dbac - std::panic::catch_unwind::hd5d426ebd89b2542 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:394 [INFO] [stdout] 23: 0x7f8d68e4dbac - test::run_test_in_process::h8dacdba4dc4cbaa5 [INFO] [stdout] at src/libtest/lib.rs:541 [INFO] [stdout] 24: 0x7f8d68e4dbac - test::run_test::run_test_inner::{{closure}}::hf93754afad6be40f [INFO] [stdout] at src/libtest/lib.rs:450 [INFO] [stdout] 25: 0x7f8d68e22c46 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2c69fab544a90730 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/sys_common/backtrace.rs:130 [INFO] [stdout] 26: 0x7f8d68e28a05 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::hcf302fafa60d80f2 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/thread/mod.rs:475 [INFO] [stdout] 27: 0x7f8d68e28a05 - as core::ops::function::FnOnce<()>>::call_once::h39ede710608e817e [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:318 [INFO] [stdout] 28: 0x7f8d68e28a05 - std::panicking::try::do_call::hec0b4d2faa46fbf7 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:348 [INFO] [stdout] 29: 0x7f8d68e28a05 - std::panicking::try::h0144ba3f2539803d [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:325 [INFO] [stdout] 30: 0x7f8d68e28a05 - std::panic::catch_unwind::ha03e59eb589f857b [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:394 [INFO] [stdout] 31: 0x7f8d68e28a05 - std::thread::Builder::spawn_unchecked::{{closure}}::hdeba34620a4a7a44 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/thread/mod.rs:474 [INFO] [stdout] 32: 0x7f8d68e28a05 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h552693dbb801eadd [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libcore/ops/function.rs:233 [INFO] [stdout] 33: 0x7f8d68b90cba - as core::ops::function::FnOnce>::call_once::h61c24496ae624ac5 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/liballoc/boxed.rs:1081 [INFO] [stdout] 34: 0x7f8d68b90cba - as core::ops::function::FnOnce>::call_once::h89548957afa14049 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/liballoc/boxed.rs:1081 [INFO] [stdout] 35: 0x7f8d68b90cba - std::sys::unix::thread::Thread::new::thread_start::h73903fbbff5b990e [INFO] [stdout] at src/libstd/sys/unix/thread.rs:87 [INFO] [stdout] 36: 0x7f8d68ad1609 - start_thread [INFO] [stdout] 37: 0x7f8d689dd103 - __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: 0x7f8d68b7c8e5 - backtrace::backtrace::libunwind::trace::h5e2646fa3eddf2ea [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86 [INFO] [stdout] 1: 0x7f8d68b7c8e5 - backtrace::backtrace::trace_unsynchronized::hb95dd7f77ce47877 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66 [INFO] [stdout] 2: 0x7f8d68b7c8e5 - std::sys_common::backtrace::_print_fmt::h5e71b67af43fd70d [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:78 [INFO] [stdout] 3: 0x7f8d68b7c8e5 - ::fmt::hdb4a83d2b61107e5 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:59 [INFO] [stdout] 4: 0x7f8d68bb936c - core::fmt::write::ha20e7262fa3e8a7a [INFO] [stdout] at src/libcore/fmt/mod.rs:1076 [INFO] [stdout] 5: 0x7f8d68e23755 - std::io::Write::write_fmt::hd8ff364c7845d2d0 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/io/mod.rs:1537 [INFO] [stdout] 6: 0x7f8d68b68c31 - std::io::impls::>::write_fmt::h1c057ef6e8762996 [INFO] [stdout] at src/libstd/io/impls.rs:176 [INFO] [stdout] 7: 0x7f8d68b81780 - std::sys_common::backtrace::_print::h9c07314cc66ba539 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:62 [INFO] [stdout] 8: 0x7f8d68b81780 - std::sys_common::backtrace::print::hd1fd65f49a2d8544 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:49 [INFO] [stdout] 9: 0x7f8d68b81780 - std::panicking::default_hook::{{closure}}::h222da46485ab36fc [INFO] [stdout] at src/libstd/panicking.rs:198 [INFO] [stdout] 10: 0x7f8d68b8147a - std::panicking::default_hook::hc5868949d129ed00 [INFO] [stdout] at src/libstd/panicking.rs:214 [INFO] [stdout] 11: 0x7f8d68b81ef8 - std::panicking::rust_panic_with_hook::h26a6ab8b0993c0c8 [INFO] [stdout] at src/libstd/panicking.rs:530 [INFO] [stdout] 12: 0x7f8d68b81acb - rust_begin_unwind [INFO] [stdout] at src/libstd/panicking.rs:437 [INFO] [stdout] 13: 0x7f8d68b81a3b - std::panicking::begin_panic_fmt::h2ff295231415d4a6 [INFO] [stdout] at src/libstd/panicking.rs:391 [INFO] [stdout] 14: 0x562f31e5f7c6 - ublox_derive::tests::run_compare_test::h14f1719ae57111aa [INFO] [stdout] at src/tests.rs:503 [INFO] [stdout] 15: 0x562f31e66616 - ublox_derive::tests::test_ubx_packet_recv_simple::haa800715fb349f2d [INFO] [stdout] at src/tests.rs:37 [INFO] [stdout] 16: 0x562f31e612ea - ublox_derive::tests::test_ubx_packet_recv_simple::{{closure}}::h78f3687e80aadd61 [INFO] [stdout] at src/tests.rs:12 [INFO] [stdout] 17: 0x562f31eb863e - core::ops::function::FnOnce::call_once::haa3a3a22e05a8f71 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libcore/ops/function.rs:233 [INFO] [stdout] 18: 0x7f8d68e4dbac - as core::ops::function::FnOnce>::call_once::h42148c33ed88c979 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/liballoc/boxed.rs:1081 [INFO] [stdout] 19: 0x7f8d68e4dbac - as core::ops::function::FnOnce<()>>::call_once::h759dc0b09d774665 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:318 [INFO] [stdout] 20: 0x7f8d68e4dbac - std::panicking::try::do_call::h676ad1fc9e9badea [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:348 [INFO] [stdout] 21: 0x7f8d68e4dbac - std::panicking::try::hee36a8727a3050b0 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:325 [INFO] [stdout] 22: 0x7f8d68e4dbac - std::panic::catch_unwind::hd5d426ebd89b2542 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:394 [INFO] [stdout] 23: 0x7f8d68e4dbac - test::run_test_in_process::h8dacdba4dc4cbaa5 [INFO] [stdout] at src/libtest/lib.rs:541 [INFO] [stdout] 24: 0x7f8d68e4dbac - test::run_test::run_test_inner::{{closure}}::hf93754afad6be40f [INFO] [stdout] at src/libtest/lib.rs:450 [INFO] [stdout] 25: 0x7f8d68e22c46 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2c69fab544a90730 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/sys_common/backtrace.rs:130 [INFO] [stdout] 26: 0x7f8d68e28a05 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::hcf302fafa60d80f2 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/thread/mod.rs:475 [INFO] [stdout] 27: 0x7f8d68e28a05 - as core::ops::function::FnOnce<()>>::call_once::h39ede710608e817e [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:318 [INFO] [stdout] 28: 0x7f8d68e28a05 - std::panicking::try::do_call::hec0b4d2faa46fbf7 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:348 [INFO] [stdout] 29: 0x7f8d68e28a05 - std::panicking::try::h0144ba3f2539803d [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:325 [INFO] [stdout] 30: 0x7f8d68e28a05 - std::panic::catch_unwind::ha03e59eb589f857b [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:394 [INFO] [stdout] 31: 0x7f8d68e28a05 - std::thread::Builder::spawn_unchecked::{{closure}}::hdeba34620a4a7a44 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/thread/mod.rs:474 [INFO] [stdout] 32: 0x7f8d68e28a05 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h552693dbb801eadd [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libcore/ops/function.rs:233 [INFO] [stdout] 33: 0x7f8d68b90cba - as core::ops::function::FnOnce>::call_once::h61c24496ae624ac5 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/liballoc/boxed.rs:1081 [INFO] [stdout] 34: 0x7f8d68b90cba - as core::ops::function::FnOnce>::call_once::h89548957afa14049 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/liballoc/boxed.rs:1081 [INFO] [stdout] 35: 0x7f8d68b90cba - std::sys::unix::thread::Thread::new::thread_start::h73903fbbff5b990e [INFO] [stdout] at src/libstd/sys/unix/thread.rs:87 [INFO] [stdout] 36: 0x7f8d68ad1609 - start_thread [INFO] [stdout] 37: 0x7f8d689dd103 - __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: 0x7f8d68b7c8e5 - backtrace::backtrace::libunwind::trace::h5e2646fa3eddf2ea [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86 [INFO] [stdout] 1: 0x7f8d68b7c8e5 - backtrace::backtrace::trace_unsynchronized::hb95dd7f77ce47877 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66 [INFO] [stdout] 2: 0x7f8d68b7c8e5 - std::sys_common::backtrace::_print_fmt::h5e71b67af43fd70d [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:78 [INFO] [stdout] 3: 0x7f8d68b7c8e5 - ::fmt::hdb4a83d2b61107e5 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:59 [INFO] [stdout] 4: 0x7f8d68bb936c - core::fmt::write::ha20e7262fa3e8a7a [INFO] [stdout] at src/libcore/fmt/mod.rs:1076 [INFO] [stdout] 5: 0x7f8d68e23755 - std::io::Write::write_fmt::hd8ff364c7845d2d0 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/io/mod.rs:1537 [INFO] [stdout] 6: 0x7f8d68b68c31 - std::io::impls::>::write_fmt::h1c057ef6e8762996 [INFO] [stdout] at src/libstd/io/impls.rs:176 [INFO] [stdout] 7: 0x7f8d68b81780 - std::sys_common::backtrace::_print::h9c07314cc66ba539 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:62 [INFO] [stdout] 8: 0x7f8d68b81780 - std::sys_common::backtrace::print::hd1fd65f49a2d8544 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:49 [INFO] [stdout] 9: 0x7f8d68b81780 - std::panicking::default_hook::{{closure}}::h222da46485ab36fc [INFO] [stdout] at src/libstd/panicking.rs:198 [INFO] [stdout] 10: 0x7f8d68b8147a - std::panicking::default_hook::hc5868949d129ed00 [INFO] [stdout] at src/libstd/panicking.rs:214 [INFO] [stdout] 11: 0x7f8d68b81ef8 - std::panicking::rust_panic_with_hook::h26a6ab8b0993c0c8 [INFO] [stdout] at src/libstd/panicking.rs:530 [INFO] [stdout] 12: 0x7f8d68b81acb - rust_begin_unwind [INFO] [stdout] at src/libstd/panicking.rs:437 [INFO] [stdout] 13: 0x7f8d68b81a3b - std::panicking::begin_panic_fmt::h2ff295231415d4a6 [INFO] [stdout] at src/libstd/panicking.rs:391 [INFO] [stdout] 14: 0x562f31e5f7c6 - ublox_derive::tests::run_compare_test::h14f1719ae57111aa [INFO] [stdout] at src/tests.rs:503 [INFO] [stdout] 15: 0x562f31e6feb6 - ublox_derive::tests::test_ubx_packet_send::h0d98a6385d4add90 [INFO] [stdout] at src/tests.rs:209 [INFO] [stdout] 16: 0x562f31e69bea - ublox_derive::tests::test_ubx_packet_send::{{closure}}::ha6f0505af8283bed [INFO] [stdout] at src/tests.rs:188 [INFO] [stdout] 17: 0x562f31eb84de - core::ops::function::FnOnce::call_once::h485da731b858bd3b [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libcore/ops/function.rs:233 [INFO] [stdout] 18: 0x7f8d68e4dbac - as core::ops::function::FnOnce>::call_once::h42148c33ed88c979 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/liballoc/boxed.rs:1081 [INFO] [stdout] 19: 0x7f8d68e4dbac - as core::ops::function::FnOnce<()>>::call_once::h759dc0b09d774665 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:318 [INFO] [stdout] 20: 0x7f8d68e4dbac - std::panicking::try::do_call::h676ad1fc9e9badea [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:348 [INFO] [stdout] 21: 0x7f8d68e4dbac - std::panicking::try::hee36a8727a3050b0 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:325 [INFO] [stdout] 22: 0x7f8d68e4dbac - std::panic::catch_unwind::hd5d426ebd89b2542 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:394 [INFO] [stdout] 23: 0x7f8d68e4dbac - test::run_test_in_process::h8dacdba4dc4cbaa5 [INFO] [stdout] at src/libtest/lib.rs:541 [INFO] [stdout] 24: 0x7f8d68e4dbac - test::run_test::run_test_inner::{{closure}}::hf93754afad6be40f [INFO] [stdout] at src/libtest/lib.rs:450 [INFO] [stdout] 25: 0x7f8d68e22c46 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2c69fab544a90730 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/sys_common/backtrace.rs:130 [INFO] [stdout] 26: 0x7f8d68e28a05 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::hcf302fafa60d80f2 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/thread/mod.rs:475 [INFO] [stdout] 27: 0x7f8d68e28a05 - as core::ops::function::FnOnce<()>>::call_once::h39ede710608e817e [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:318 [INFO] [stdout] 28: 0x7f8d68e28a05 - std::panicking::try::do_call::hec0b4d2faa46fbf7 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:348 [INFO] [stdout] 29: 0x7f8d68e28a05 - std::panicking::try::h0144ba3f2539803d [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panicking.rs:325 [INFO] [stdout] 30: 0x7f8d68e28a05 - std::panic::catch_unwind::ha03e59eb589f857b [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/panic.rs:394 [INFO] [stdout] 31: 0x7f8d68e28a05 - std::thread::Builder::spawn_unchecked::{{closure}}::hdeba34620a4a7a44 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libstd/thread/mod.rs:474 [INFO] [stdout] 32: 0x7f8d68e28a05 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h552693dbb801eadd [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/libcore/ops/function.rs:233 [INFO] [stdout] 33: 0x7f8d68b90cba - as core::ops::function::FnOnce>::call_once::h61c24496ae624ac5 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/liballoc/boxed.rs:1081 [INFO] [stdout] 34: 0x7f8d68b90cba - as core::ops::function::FnOnce>::call_once::h89548957afa14049 [INFO] [stdout] at /rustc/6f959902b3103c49ca981fbc01871589c3498489/src/liballoc/boxed.rs:1081 [INFO] [stdout] 35: 0x7f8d68b90cba - std::sys::unix::thread::Thread::new::thread_start::h73903fbbff5b990e [INFO] [stdout] at src/libstd/sys/unix/thread.rs:87 [INFO] [stdout] 36: 0x7f8d68ad1609 - start_thread [INFO] [stdout] 37: 0x7f8d689dd103 - __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 `Command { std: "docker" "inspect" "fd68881bc77b047e8e7bb1f9b77950a3819a295c51099700e08cdce97615261a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fd68881bc77b047e8e7bb1f9b77950a3819a295c51099700e08cdce97615261a", kill_on_drop: false }` [INFO] [stdout] fd68881bc77b047e8e7bb1f9b77950a3819a295c51099700e08cdce97615261a