[INFO] fetching crate ublox_derive 0.1.0...
[INFO] testing ublox_derive-0.1.0 against 1.75.0 for beta-1.76-1
[INFO] extracting crate ublox_derive 0.1.0 into /workspace/builds/worker-6-tc1/source
[INFO] validating manifest of crates.io crate ublox_derive 0.1.0 on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate ublox_derive 0.1.0
[INFO] finished tweaking crates.io crate ublox_derive 0.1.0
[INFO] tweaked toml for crates.io crate ublox_derive 0.1.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "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" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7053e5eb22fc73737cf590d34b14ad8ec23d6f17d194999cdf95da28cfd259e8
[INFO] running `Command { std: "docker" "start" "-a" "7053e5eb22fc73737cf590d34b14ad8ec23d6f17d194999cdf95da28cfd259e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7053e5eb22fc73737cf590d34b14ad8ec23d6f17d194999cdf95da28cfd259e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7053e5eb22fc73737cf590d34b14ad8ec23d6f17d194999cdf95da28cfd259e8", kill_on_drop: false }`
[INFO] [stdout] 7053e5eb22fc73737cf590d34b14ad8ec23d6f17d194999cdf95da28cfd259e8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 91583b32e521b0726416587b3c1898b73f4675f32cefb6e770b665fdb3346c39
[INFO] running `Command { std: "docker" "start" "-a" "91583b32e521b0726416587b3c1898b73f4675f32cefb6e770b665fdb3346c39", kill_on_drop: false }`
[INFO] [stderr]    Compiling ublox_derive v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.24s
[INFO] running `Command { std: "docker" "inspect" "91583b32e521b0726416587b3c1898b73f4675f32cefb6e770b665fdb3346c39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91583b32e521b0726416587b3c1898b73f4675f32cefb6e770b665fdb3346c39", kill_on_drop: false }`
[INFO] [stdout] 91583b32e521b0726416587b3c1898b73f4675f32cefb6e770b665fdb3346c39
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0a1ee408fe10ec54589b792cf3a6a9f5d2018cbbaee4a28012a92c17ec5b1a42
[INFO] running `Command { std: "docker" "start" "-a" "0a1ee408fe10ec54589b792cf3a6a9f5d2018cbbaee4a28012a92c17ec5b1a42", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.75
[INFO] [stderr]    Compiling rustix v0.38.28
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling ublox_derive v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 4.46s
[INFO] running `Command { std: "docker" "inspect" "0a1ee408fe10ec54589b792cf3a6a9f5d2018cbbaee4a28012a92c17ec5b1a42", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a1ee408fe10ec54589b792cf3a6a9f5d2018cbbaee4a28012a92c17ec5b1a42", kill_on_drop: false }`
[INFO] [stdout] 0a1ee408fe10ec54589b792cf3a6a9f5d2018cbbaee4a28012a92c17ec5b1a42
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] bd88fdfd819d86e5750fbdaeb7dcc887ce44017b9a3cb7066079e3b0baf213ec
[INFO] running `Command { std: "docker" "start" "-a" "bd88fdfd819d86e5750fbdaeb7dcc887ce44017b9a3cb7066079e3b0baf213ec", kill_on_drop: false }`
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.01s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ublox_derive-f1032cafa0e9e842)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::test_extend_bitflags ... ok
[INFO] [stdout] test tests::test_upgrade_enum ... ok
[INFO] [stdout] test tests::test_ubx_packet_recv_simple ... FAILED
[INFO] [stdout] test tests::test_ubx_packet_recv_dyn_len ... FAILED
[INFO] [stdout] test tests::test_define_recv_packets ... FAILED
[INFO] [stdout] test tests::test_ubx_packet_send ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_ubx_packet_recv_simple stdout ----
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain '1.75.0-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain 1.75.0-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain '1.75.0-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain 1.75.0-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[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 = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn itow (& self) -> u32 { let val = < u32 > :: from_le_bytes ([self . 0 [0usize] , self . 0 [1usize] , self . 0 [2usize] , self . 0 [3usize] ,]) ; val } # [doc = "this is lat"] # [inline] pub fn lat_degrees_raw (& self) -> i32 { let val = < i32 > :: from_le_bytes ([self . 0 [4usize] , self . 0 [5usize] , self . 0 [6usize] , self . 0 [7usize] ,]) ; val } # [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) ; let val = val * 1e-7 ; val } # [doc = "this is a"] # [inline] pub fn a (& self) -> u8 { let val = self . 0 [8usize] ; val } # [doc = ""] # [inline] pub fn reserved1 (& self) -> [u8 ; 5] { let val = [self . 0 [9usize] , self . 0 [10usize] , self . 0 [11usize] , self . 0 [12usize] , self . 0 [13usize] ,] ; val } # [doc = ""] # [inline] pub fn flags_raw (& self) -> u8 { let val = self . 0 [14usize] ; val } # [doc = ""] # [inline] pub fn flags (& self) -> Flags { let val = self . 0 [14usize] ; let val = < Flags > :: from_unchecked (val) ; val } # [doc = ""] # [inline] pub fn b (& self) -> i8 { let val = < i8 > :: from_le_bytes ([self . 0 [15usize]]) ; val } 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 , }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (itow) , & self . itow ()) . field (stringify ! (lat) , & self . lat_degrees ()) . field (stringify ! (a) , & self . a ()) . field (stringify ! (reserved1) , & self . reserved1 ()) . field (stringify ! (flags) , & self . flags ()) . field (stringify ! (b) , & self . b ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (itow) , & self . itow ()) ? ; state . serialize_entry (stringify ! (lat) , & self . lat_degrees ()) ? ; state . serialize_entry (stringify ! (a) , & self . a ()) ? ; state . serialize_entry (stringify ! (reserved1) , & self . reserved1 ()) ? ; state . serialize_entry (stringify ! (flags) , & self . flags ()) ? ; state . serialize_entry (stringify ! (b) , & self . b ()) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[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 = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn itow (& self) -> u32 { let val = < u32 > :: from_le_bytes ([self . 0 [0usize] , self . 0 [1usize] , self . 0 [2usize] , self . 0 [3usize]]) ; val } # [doc = "this is lat"] # [inline] pub fn lat_degrees_raw (& self) -> i32 { let val = < i32 > :: from_le_bytes ([self . 0 [4usize] , self . 0 [5usize] , self . 0 [6usize] , self . 0 [7usize]]) ; val } # [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) ; let val = val * 1e-7 ; val } # [doc = "this is a"] # [inline] pub fn a (& self) -> u8 { let val = self . 0 [8usize] ; val } # [doc = ""] # [inline] pub fn reserved1 (& self) -> [u8 ; 5] { let val = [self . 0 [9usize] , self . 0 [10usize] , self . 0 [11usize] , self . 0 [12usize] , self . 0 [13usize]] ; val } # [doc = ""] # [inline] pub fn flags_raw (& self) -> u8 { let val = self . 0 [14usize] ; val } # [doc = ""] # [inline] pub fn flags (& self) -> Flags { let val = self . 0 [14usize] ; let val = < Flags > :: from_unchecked (val) ; val } # [doc = ""] # [inline] pub fn b (& self) -> i8 { let val = < i8 > :: from_le_bytes ([self . 0 [15usize]]) ; val } 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 }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (itow) , & self . itow ()) . field (stringify ! (lat) , & self . lat_degrees ()) . field (stringify ! (a) , & self . a ()) . field (stringify ! (reserved1) , & self . reserved1 ()) . field (stringify ! (flags) , & self . flags ()) . field (stringify ! (b) , & self . b ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (itow) , & self . itow ()) ? ; state . serialize_entry (stringify ! (lat) , & self . lat_degrees ()) ? ; state . serialize_entry (stringify ! (a) , & self . a ()) ? ; state . serialize_entry (stringify ! (reserved1) , & self . reserved1 ()) ? ; state . serialize_entry (stringify ! (flags) , & self . flags ()) ? ; state . serialize_entry (stringify ! (b) , & self . b ()) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] thread 'tests::test_ubx_packet_recv_simple' panicked at src/tests.rs:705:9:
[INFO] [stdout] 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 = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn itow (& self) -> u32 { let val = < u32 > :: from_le_bytes ([self . 0 [0usize] , self . 0 [1usize] , self . 0 [2usize] , self . 0 [3usize] ,]) ; val } # [doc = "this is lat"] # [inline] pub fn lat_degrees_raw (& self) -> i32 { let val = < i32 > :: from_le_bytes ([self . 0 [4usize] , self . 0 [5usize] , self . 0 [6usize] , self . 0 [7usize] ,]) ; val } # [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) ; let val = val * 1e-7 ; val } # [doc = "this is a"] # [inline] pub fn a (& self) -> u8 { let val = self . 0 [8usize] ; val } # [doc = ""] # [inline] pub fn reserved1 (& self) -> [u8 ; 5] { let val = [self . 0 [9usize] , self . 0 [10usize] , self . 0 [11usize] , self . 0 [12usize] , self . 0 [13usize] ,] ; val } # [doc = ""] # [inline] pub fn flags_raw (& self) -> u8 { let val = self . 0 [14usize] ; val } # [doc = ""] # [inline] pub fn flags (& self) -> Flags { let val = self . 0 [14usize] ; let val = < Flags > :: from_unchecked (val) ; val } # [doc = ""] # [inline] pub fn b (& self) -> i8 { let val = < i8 > :: from_le_bytes ([self . 0 [15usize]]) ; val } 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 , }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (itow) , & self . itow ()) . field (stringify ! (lat) , & self . lat_degrees ()) . field (stringify ! (a) , & self . a ()) . field (stringify ! (reserved1) , & self . reserved1 ()) . field (stringify ! (flags) , & self . flags ()) . field (stringify ! (b) , & self . b ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (itow) , & self . itow ()) ? ; state . serialize_entry (stringify ! (lat) , & self . lat_degrees ()) ? ; state . serialize_entry (stringify ! (a) , & self . a ()) ? ; state . serialize_entry (stringify ! (reserved1) , & self . reserved1 ()) ? ; state . serialize_entry (stringify ! (flags) , & self . flags ()) ? ; state . serialize_entry (stringify ! (b) , & self . b ()) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[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 = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn itow (& self) -> u32 { let val = < u32 > :: from_le_bytes ([self . 0 [0usize] , self . 0 [1usize] , self . 0 [2usize] , self . 0 [3usize]]) ; val } # [doc = "this is lat"] # [inline] pub fn lat_degrees_raw (& self) -> i32 { let val = < i32 > :: from_le_bytes ([self . 0 [4usize] , self . 0 [5usize] , self . 0 [6usize] , self . 0 [7usize]]) ; val } # [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) ; let val = val * 1e-7 ; val } # [doc = "this is a"] # [inline] pub fn a (& self) -> u8 { let val = self . 0 [8usize] ; val } # [doc = ""] # [inline] pub fn reserved1 (& self) -> [u8 ; 5] { let val = [self . 0 [9usize] , self . 0 [10usize] , self . 0 [11usize] , self . 0 [12usize] , self . 0 [13usize]] ; val } # [doc = ""] # [inline] pub fn flags_raw (& self) -> u8 { let val = self . 0 [14usize] ; val } # [doc = ""] # [inline] pub fn flags (& self) -> Flags { let val = self . 0 [14usize] ; let val = < Flags > :: from_unchecked (val) ; val } # [doc = ""] # [inline] pub fn b (& self) -> i8 { let val = < i8 > :: from_le_bytes ([self . 0 [15usize]]) ; val } 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 }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (itow) , & self . itow ()) . field (stringify ! (lat) , & self . lat_degrees ()) . field (stringify ! (a) , & self . a ()) . field (stringify ! (reserved1) , & self . reserved1 ()) . field (stringify ! (flags) , & self . flags ()) . field (stringify ! (b) , & self . b ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (itow) , & self . itow ()) ? ; state . serialize_entry (stringify ! (lat) , & self . lat_degrees ()) ? ; state . serialize_entry (stringify ! (a) , & self . a ()) ? ; state . serialize_entry (stringify ! (reserved1) , & self . reserved1 ()) ? ; state . serialize_entry (stringify ! (flags) , & self . flags ()) ? ; state . serialize_entry (stringify ! (b) , & self . b ()) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7fa4f1a6362c - std::backtrace_rs::backtrace::libunwind::trace::ha637c64ce894333a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x7fa4f1a6362c - std::backtrace_rs::backtrace::trace_unsynchronized::h47f62dea28e0c88d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x7fa4f1a6362c - std::sys_common::backtrace::_print_fmt::h9eef0abe20ede486
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stdout]    3:     0x7fa4f1a6362c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hed7f999df88cc644
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x7fa4f1ab6630 - core::fmt::rt::Argument::fmt::h1539a9308b8d058d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x7fa4f1ab6630 - core::fmt::write::h3a39390d8560d9c9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x7fa4f1a574bf - std::io::Write::write_fmt::h040b369f3a0f9cbc
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/mod.rs:1762:15
[INFO] [stdout]    7:     0x7fa4f1a63414 - std::sys_common::backtrace::_print::h894006fb5c6f3d45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x7fa4f1a63414 - std::sys_common::backtrace::print::h23a2d212c6fff936
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x7fa4f1a660a7 - std::panicking::default_hook::{{closure}}::h8a1d2ee00185001a
[INFO] [stdout]   10:     0x7fa4f1a65d93 - std::panicking::default_hook::h6038f2eba384e475
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x7fa4f1b31d07 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0ad024c9bdc6d768
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   12:     0x7fa4f1b31d07 - test::test_main::{{closure}}::h7500b54257359db6
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x7fa4f1a667e8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1f8f335eaa9cfaee
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   14:     0x7fa4f1a667e8 - std::panicking::rust_panic_with_hook::h2b5517d590cab22e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x7fa4f1a6653e - std::panicking::begin_panic_handler::{{closure}}::h233112c06e0ef43e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x7fa4f1a63af6 - std::sys_common::backtrace::__rust_end_short_backtrace::h6e893f24d7ebbff8
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18
[INFO] [stdout]   17:     0x7fa4f1a662a2 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x7fa4f1ab2d15 - core::panicking::panic_fmt::hbf0e066aabfa482c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55888820d23e - ublox_derive::tests::run_compare_test::hdc6aad10362bd763
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:705:9
[INFO] [stdout]   20:     0x558888219e30 - ublox_derive::tests::test_ubx_packet_recv_simple::he5e93dc3b53dc357
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:37:5
[INFO] [stdout]   21:     0x55888820f797 - ublox_derive::tests::test_ubx_packet_recv_simple::{{closure}}::hcb490f302978f431
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:12:33
[INFO] [stdout]   22:     0x5588882a4076 - core::ops::function::FnOnce::call_once::h94ad32b05d6999a8
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x7fa4f1b37c9f - core::ops::function::FnOnce::call_once::h2b5d431d5046312d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x7fa4f1b37c9f - test::__rust_begin_short_backtrace::h7714669af176e207
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:628:18
[INFO] [stdout]   25:     0x7fa4f1b36cb5 - test::run_test_in_process::{{closure}}::h85218797dcbcec12
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:60
[INFO] [stdout]   26:     0x7fa4f1b36cb5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h76c106ea31c14d7b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x7fa4f1b36cb5 - std::panicking::try::do_call::h3bd5d0f6620ee946
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   28:     0x7fa4f1b36cb5 - std::panicking::try::h232e535e4744fe31
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   29:     0x7fa4f1b36cb5 - std::panic::catch_unwind::h3ce3bd6ca8dbac68
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   30:     0x7fa4f1b36cb5 - test::run_test_in_process::hc97b257c9621286a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:27
[INFO] [stdout]   31:     0x7fa4f1b36cb5 - test::run_test::{{closure}}::h2aa798823a438d38
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:574:43
[INFO] [stdout]   32:     0x7fa4f1afaa26 - test::run_test::{{closure}}::h87d231c78fb59832
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:602:41
[INFO] [stdout]   33:     0x7fa4f1afaa26 - std::sys_common::backtrace::__rust_begin_short_backtrace::he6df152596625789
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:154:18
[INFO] [stdout]   34:     0x7fa4f1affad7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::ha94be15d1e0acf36
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   35:     0x7fa4f1affad7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9dc6bd6372f16606
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x7fa4f1affad7 - std::panicking::try::do_call::h9057517f80303cd4
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   37:     0x7fa4f1affad7 - std::panicking::try::he3a30b11ee45340c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   38:     0x7fa4f1affad7 - std::panic::catch_unwind::h410458cfd3528b8b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   39:     0x7fa4f1affad7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h72ac3bdb567b737b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   40:     0x7fa4f1affad7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h38f34da3654a8344
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x7fa4f1a706a5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hc7eafaff61e32df9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   42:     0x7fa4f1a706a5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6ba4a5de48dd2304
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   43:     0x7fa4f1a706a5 - std::sys::unix::thread::Thread::new::thread_start::he469335aef763e45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7fa4f17e1ac3 - <unknown>
[INFO] [stdout]   45:     0x7fa4f1872bf4 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_ubx_packet_recv_dyn_len stdout ----
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain '1.75.0-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain 1.75.0-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain '1.75.0-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain 1.75.0-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] first mismatch:
[INFO] [stdout] e # [doc = ""] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = None ; const MAX_PAYLOAD_LEN : u16 = 38u16 ; } # [doc = ""] # [doc = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn f1_raw (& self) -> & [u8] { let val = & self . 0 [0usize .. (0usize + 8usize)] ; val } # [doc = ""] # [inline] pub fn f1 (& self) -> & str { let val = & self . 0 [0usize .. (0usize + 8usize)] ; let val = unpack_str (val) ; val } # [doc = ""] # [inline] pub fn rest (& self) -> & [u8] { & self . 0 [8usize ..] } fn validate (payload : & [u8]) -> Result < () , ParserError > { let got = payload . len () ; let min = 8usize ; if got >= min { Ok (()) } else { Err (ParserError :: InvalidPacketLen { packet : "Test" , expect : min , got , }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (f1) , & self . f1 ()) . field (stringify ! (rest) , & self . rest ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (f1) , & self . f1 ()) ? ; state . serialize_entry (stringify ! (rest) , & crate :: ubx_packets :: FieldIter (self . rest ()) ,) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] g # [doc = ""] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = None ; const MAX_PAYLOAD_LEN : u16 = 38u16 ; } # [doc = ""] # [doc = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn f1_raw (& self) -> & [u8] { let val = & self . 0 [0usize .. (0usize + 8usize)] ; val } # [doc = ""] # [inline] pub fn f1 (& self) -> & str { let val = & self . 0 [0usize .. (0usize + 8usize)] ; let val = unpack_str (val) ; val } # [doc = ""] # [inline] pub fn rest (& self) -> & [u8] { & self . 0 [8usize ..] } fn validate (payload : & [u8]) -> Result < () , ParserError > { let got = payload . len () ; let min = 8usize ; ; if got >= min { Ok (()) } else { Err (ParserError :: InvalidPacketLen { packet : "Test" , expect : min , got }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (f1) , & self . f1 ()) . field (stringify ! (rest) , & self . rest ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (f1) , & self . f1 ()) ? ; state . serialize_entry (stringify ! (rest) , & crate :: ubx_packets :: FieldIter (self . rest ())) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] thread 'tests::test_ubx_packet_recv_dyn_len' panicked at src/tests.rs:705:9:
[INFO] [stdout] Expect:
[INFO] [stdout] # [doc = ""] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = None ; const MAX_PAYLOAD_LEN : u16 = 38u16 ; } # [doc = ""] # [doc = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn f1_raw (& self) -> & [u8] { let val = & self . 0 [0usize .. (0usize + 8usize)] ; val } # [doc = ""] # [inline] pub fn f1 (& self) -> & str { let val = & self . 0 [0usize .. (0usize + 8usize)] ; let val = unpack_str (val) ; val } # [doc = ""] # [inline] pub fn rest (& self) -> & [u8] { & self . 0 [8usize ..] } fn validate (payload : & [u8]) -> Result < () , ParserError > { let got = payload . len () ; let min = 8usize ; if got >= min { Ok (()) } else { Err (ParserError :: InvalidPacketLen { packet : "Test" , expect : min , got , }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (f1) , & self . f1 ()) . field (stringify ! (rest) , & self . rest ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (f1) , & self . f1 ()) ? ; state . serialize_entry (stringify ! (rest) , & crate :: ubx_packets :: FieldIter (self . rest ()) ,) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] Got:
[INFO] [stdout] # [doc = ""] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = None ; const MAX_PAYLOAD_LEN : u16 = 38u16 ; } # [doc = ""] # [doc = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn f1_raw (& self) -> & [u8] { let val = & self . 0 [0usize .. (0usize + 8usize)] ; val } # [doc = ""] # [inline] pub fn f1 (& self) -> & str { let val = & self . 0 [0usize .. (0usize + 8usize)] ; let val = unpack_str (val) ; val } # [doc = ""] # [inline] pub fn rest (& self) -> & [u8] { & self . 0 [8usize ..] } fn validate (payload : & [u8]) -> Result < () , ParserError > { let got = payload . len () ; let min = 8usize ; ; if got >= min { Ok (()) } else { Err (ParserError :: InvalidPacketLen { packet : "Test" , expect : min , got }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (f1) , & self . f1 ()) . field (stringify ! (rest) , & self . rest ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (f1) , & self . f1 ()) ? ; state . serialize_entry (stringify ! (rest) , & crate :: ubx_packets :: FieldIter (self . rest ())) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7fa4f1a6362c - std::backtrace_rs::backtrace::libunwind::trace::ha637c64ce894333a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x7fa4f1a6362c - std::backtrace_rs::backtrace::trace_unsynchronized::h47f62dea28e0c88d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x7fa4f1a6362c - std::sys_common::backtrace::_print_fmt::h9eef0abe20ede486
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stdout]    3:     0x7fa4f1a6362c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hed7f999df88cc644
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x7fa4f1ab6630 - core::fmt::rt::Argument::fmt::h1539a9308b8d058d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x7fa4f1ab6630 - core::fmt::write::h3a39390d8560d9c9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x7fa4f1a574bf - std::io::Write::write_fmt::h040b369f3a0f9cbc
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/mod.rs:1762:15
[INFO] [stdout]    7:     0x7fa4f1a63414 - std::sys_common::backtrace::_print::h894006fb5c6f3d45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x7fa4f1a63414 - std::sys_common::backtrace::print::h23a2d212c6fff936
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x7fa4f1a660a7 - std::panicking::default_hook::{{closure}}::h8a1d2ee00185001a
[INFO] [stdout]   10:     0x7fa4f1a65d93 - std::panicking::default_hook::h6038f2eba384e475
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x7fa4f1b31d07 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0ad024c9bdc6d768
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   12:     0x7fa4f1b31d07 - test::test_main::{{closure}}::h7500b54257359db6
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x7fa4f1a667e8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1f8f335eaa9cfaee
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   14:     0x7fa4f1a667e8 - std::panicking::rust_panic_with_hook::h2b5517d590cab22e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x7fa4f1a6653e - std::panicking::begin_panic_handler::{{closure}}::h233112c06e0ef43e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x7fa4f1a63af6 - std::sys_common::backtrace::__rust_end_short_backtrace::h6e893f24d7ebbff8
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18
[INFO] [stdout]   17:     0x7fa4f1a662a2 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x7fa4f1ab2d15 - core::panicking::panic_fmt::hbf0e066aabfa482c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55888820d23e - ublox_derive::tests::run_compare_test::hdc6aad10362bd763
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:705:9
[INFO] [stdout]   20:     0x55888821fa1c - ublox_derive::tests::test_ubx_packet_recv_dyn_len::h6255a4a1cef44bc7
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:225:5
[INFO] [stdout]   21:     0x55888821a017 - ublox_derive::tests::test_ubx_packet_recv_dyn_len::{{closure}}::hf3972f22aec4350c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:205:34
[INFO] [stdout]   22:     0x5588882a3da6 - core::ops::function::FnOnce::call_once::h3a77a7002c0aee40
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x7fa4f1b37c9f - core::ops::function::FnOnce::call_once::h2b5d431d5046312d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x7fa4f1b37c9f - test::__rust_begin_short_backtrace::h7714669af176e207
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:628:18
[INFO] [stdout]   25:     0x7fa4f1b36cb5 - test::run_test_in_process::{{closure}}::h85218797dcbcec12
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:60
[INFO] [stdout]   26:     0x7fa4f1b36cb5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h76c106ea31c14d7b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x7fa4f1b36cb5 - std::panicking::try::do_call::h3bd5d0f6620ee946
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   28:     0x7fa4f1b36cb5 - std::panicking::try::h232e535e4744fe31
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   29:     0x7fa4f1b36cb5 - std::panic::catch_unwind::h3ce3bd6ca8dbac68
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   30:     0x7fa4f1b36cb5 - test::run_test_in_process::hc97b257c9621286a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:27
[INFO] [stdout]   31:     0x7fa4f1b36cb5 - test::run_test::{{closure}}::h2aa798823a438d38
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:574:43
[INFO] [stdout]   32:     0x7fa4f1afaa26 - test::run_test::{{closure}}::h87d231c78fb59832
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:602:41
[INFO] [stdout]   33:     0x7fa4f1afaa26 - std::sys_common::backtrace::__rust_begin_short_backtrace::he6df152596625789
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:154:18
[INFO] [stdout]   34:     0x7fa4f1affad7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::ha94be15d1e0acf36
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   35:     0x7fa4f1affad7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9dc6bd6372f16606
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x7fa4f1affad7 - std::panicking::try::do_call::h9057517f80303cd4
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   37:     0x7fa4f1affad7 - std::panicking::try::he3a30b11ee45340c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   38:     0x7fa4f1affad7 - std::panic::catch_unwind::h410458cfd3528b8b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   39:     0x7fa4f1affad7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h72ac3bdb567b737b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   40:     0x7fa4f1affad7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h38f34da3654a8344
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x7fa4f1a706a5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hc7eafaff61e32df9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   42:     0x7fa4f1a706a5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6ba4a5de48dd2304
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   43:     0x7fa4f1a706a5 - std::sys::unix::thread::Thread::new::thread_start::he469335aef763e45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7fa4f17e1ac3 - <unknown>
[INFO] [stdout]   45:     0x7fa4f1872bf4 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_define_recv_packets stdout ----
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain '1.75.0-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain 1.75.0-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain '1.75.0-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain 1.75.0-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] first mismatch:
[INFO] [stdout] e # [doc = "All possible packets enum"] # [derive (Debug)] 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) ,) ; # [cfg (feature = "serde")] pub struct PacketSerializer < 'a , T > { class : u8 , msg_id : u8 , msg : & 'a T , } # [cfg (feature = "serde")] impl < 'a , T : SerializeUbxPacketFields > serde :: Serialize for PacketSerializer < 'a , T > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; state . serialize_entry ("class" , & self . class) ? ; state . serialize_entry ("msg_id" , & self . msg_id) ? ; self . msg . serialize_fields (& mut state) ? ; state . end () } } # [cfg (feature = "serde")] impl serde :: Serialize for PacketRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { match * self { PacketRef :: Pack1 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack1 :: CLASS , msg_id : Pack1 :: ID , msg , } . serialize (serializer) , PacketRef :: Pack2 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack2 :: CLASS , msg_id : Pack2 :: ID , msg , } . serialize (serializer) , PacketRef :: Unknown (ref pack) => pack . serialize (serializer) , } } }
[INFO] [stdout] g # [doc = "All possible packets enum"] # [derive (Debug)] 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)) ; # [cfg (feature = "serde")] pub struct PacketSerializer < 'a , T > { class : u8 , msg_id : u8 , msg : & 'a T , } # [cfg (feature = "serde")] impl < 'a , T : SerializeUbxPacketFields > serde :: Serialize for PacketSerializer < 'a , T > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; state . serialize_entry ("class" , & self . class) ? ; state . serialize_entry ("msg_id" , & self . msg_id) ? ; self . msg . serialize_fields (& mut state) ? ; state . end () } } # [cfg (feature = "serde")] impl serde :: Serialize for PacketRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { match * self { PacketRef :: Pack1 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack1 :: CLASS , msg_id : Pack1 :: ID , msg , } . serialize (serializer) , PacketRef :: Pack2 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack2 :: CLASS , msg_id : Pack2 :: ID , msg , } . serialize (serializer) , PacketRef :: Unknown (ref pack) => pack . serialize (serializer) , } } }
[INFO] [stdout] thread 'tests::test_define_recv_packets' panicked at src/tests.rs:705:9:
[INFO] [stdout] Expect:
[INFO] [stdout] # [doc = "All possible packets enum"] # [derive (Debug)] 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) ,) ; # [cfg (feature = "serde")] pub struct PacketSerializer < 'a , T > { class : u8 , msg_id : u8 , msg : & 'a T , } # [cfg (feature = "serde")] impl < 'a , T : SerializeUbxPacketFields > serde :: Serialize for PacketSerializer < 'a , T > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; state . serialize_entry ("class" , & self . class) ? ; state . serialize_entry ("msg_id" , & self . msg_id) ? ; self . msg . serialize_fields (& mut state) ? ; state . end () } } # [cfg (feature = "serde")] impl serde :: Serialize for PacketRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { match * self { PacketRef :: Pack1 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack1 :: CLASS , msg_id : Pack1 :: ID , msg , } . serialize (serializer) , PacketRef :: Pack2 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack2 :: CLASS , msg_id : Pack2 :: ID , msg , } . serialize (serializer) , PacketRef :: Unknown (ref pack) => pack . serialize (serializer) , } } }
[INFO] [stdout] Got:
[INFO] [stdout] # [doc = "All possible packets enum"] # [derive (Debug)] 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)) ; # [cfg (feature = "serde")] pub struct PacketSerializer < 'a , T > { class : u8 , msg_id : u8 , msg : & 'a T , } # [cfg (feature = "serde")] impl < 'a , T : SerializeUbxPacketFields > serde :: Serialize for PacketSerializer < 'a , T > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; state . serialize_entry ("class" , & self . class) ? ; state . serialize_entry ("msg_id" , & self . msg_id) ? ; self . msg . serialize_fields (& mut state) ? ; state . end () } } # [cfg (feature = "serde")] impl serde :: Serialize for PacketRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { match * self { PacketRef :: Pack1 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack1 :: CLASS , msg_id : Pack1 :: ID , msg , } . serialize (serializer) , PacketRef :: Pack2 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack2 :: CLASS , msg_id : Pack2 :: ID , msg , } . serialize (serializer) , PacketRef :: Unknown (ref pack) => pack . serialize (serializer) , } } }
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7fa4f1a6362c - std::backtrace_rs::backtrace::libunwind::trace::ha637c64ce894333a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x7fa4f1a6362c - std::backtrace_rs::backtrace::trace_unsynchronized::h47f62dea28e0c88d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x7fa4f1a6362c - std::sys_common::backtrace::_print_fmt::h9eef0abe20ede486
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stdout]    3:     0x7fa4f1a6362c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hed7f999df88cc644
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x7fa4f1ab6630 - core::fmt::rt::Argument::fmt::h1539a9308b8d058d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x7fa4f1ab6630 - core::fmt::write::h3a39390d8560d9c9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x7fa4f1a574bf - std::io::Write::write_fmt::h040b369f3a0f9cbc
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/mod.rs:1762:15
[INFO] [stdout]    7:     0x7fa4f1a63414 - std::sys_common::backtrace::_print::h894006fb5c6f3d45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x7fa4f1a63414 - std::sys_common::backtrace::print::h23a2d212c6fff936
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x7fa4f1a660a7 - std::panicking::default_hook::{{closure}}::h8a1d2ee00185001a
[INFO] [stdout]   10:     0x7fa4f1a65d93 - std::panicking::default_hook::h6038f2eba384e475
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x7fa4f1b31d07 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0ad024c9bdc6d768
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   12:     0x7fa4f1b31d07 - test::test_main::{{closure}}::h7500b54257359db6
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x7fa4f1a667e8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1f8f335eaa9cfaee
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   14:     0x7fa4f1a667e8 - std::panicking::rust_panic_with_hook::h2b5517d590cab22e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x7fa4f1a6653e - std::panicking::begin_panic_handler::{{closure}}::h233112c06e0ef43e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x7fa4f1a63af6 - std::sys_common::backtrace::__rust_end_short_backtrace::h6e893f24d7ebbff8
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18
[INFO] [stdout]   17:     0x7fa4f1a662a2 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x7fa4f1ab2d15 - core::panicking::panic_fmt::hbf0e066aabfa482c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55888820d23e - ublox_derive::tests::run_compare_test::hdc6aad10362bd763
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:705:9
[INFO] [stdout]   20:     0x55888822f094 - ublox_derive::tests::test_define_recv_packets::h94935fd13edff97a
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:529:5
[INFO] [stdout]   21:     0x5588882296d7 - ublox_derive::tests::test_define_recv_packets::{{closure}}::h2bfe01742a32730f
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:516:30
[INFO] [stdout]   22:     0x5588882a4386 - core::ops::function::FnOnce::call_once::he280e23f14f660d4
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x7fa4f1b37c9f - core::ops::function::FnOnce::call_once::h2b5d431d5046312d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x7fa4f1b37c9f - test::__rust_begin_short_backtrace::h7714669af176e207
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:628:18
[INFO] [stdout]   25:     0x7fa4f1b36cb5 - test::run_test_in_process::{{closure}}::h85218797dcbcec12
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:60
[INFO] [stdout]   26:     0x7fa4f1b36cb5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h76c106ea31c14d7b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x7fa4f1b36cb5 - std::panicking::try::do_call::h3bd5d0f6620ee946
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   28:     0x7fa4f1b36cb5 - std::panicking::try::h232e535e4744fe31
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   29:     0x7fa4f1b36cb5 - std::panic::catch_unwind::h3ce3bd6ca8dbac68
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   30:     0x7fa4f1b36cb5 - test::run_test_in_process::hc97b257c9621286a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:27
[INFO] [stdout]   31:     0x7fa4f1b36cb5 - test::run_test::{{closure}}::h2aa798823a438d38
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:574:43
[INFO] [stdout]   32:     0x7fa4f1afaa26 - test::run_test::{{closure}}::h87d231c78fb59832
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:602:41
[INFO] [stdout]   33:     0x7fa4f1afaa26 - std::sys_common::backtrace::__rust_begin_short_backtrace::he6df152596625789
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:154:18
[INFO] [stdout]   34:     0x7fa4f1affad7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::ha94be15d1e0acf36
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   35:     0x7fa4f1affad7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9dc6bd6372f16606
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x7fa4f1affad7 - std::panicking::try::do_call::h9057517f80303cd4
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   37:     0x7fa4f1affad7 - std::panicking::try::he3a30b11ee45340c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   38:     0x7fa4f1affad7 - std::panic::catch_unwind::h410458cfd3528b8b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   39:     0x7fa4f1affad7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h72ac3bdb567b737b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   40:     0x7fa4f1affad7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h38f34da3654a8344
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x7fa4f1a706a5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hc7eafaff61e32df9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   42:     0x7fa4f1a706a5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6ba4a5de48dd2304
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   43:     0x7fa4f1a706a5 - std::sys::unix::thread::Thread::new::thread_start::he469335aef763e45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7fa4f17e1ac3 - <unknown>
[INFO] [stdout]   45:     0x7fa4f1872bf4 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_ubx_packet_send stdout ----
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain '1.75.0-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain 1.75.0-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain '1.75.0-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain 1.75.0-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[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 to construct packets, see the crate-level documentation for more information"] # [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 .. (Self :: PACKET_LEN - 2)]) ; ret [Self :: PACKET_LEN - 2] = ck_a ; ret [Self :: PACKET_LEN - 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 to construct packets, see the crate-level documentation for more information"] # [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 .. (Self :: PACKET_LEN - 2)]) ; ret [Self :: PACKET_LEN - 2] = ck_a ; ret [Self :: PACKET_LEN - 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 src/tests.rs:705:9:
[INFO] [stdout] 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 to construct packets, see the crate-level documentation for more information"] # [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 .. (Self :: PACKET_LEN - 2)]) ; ret [Self :: PACKET_LEN - 2] = ck_a ; ret [Self :: PACKET_LEN - 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 to construct packets, see the crate-level documentation for more information"] # [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 .. (Self :: PACKET_LEN - 2)]) ; ret [Self :: PACKET_LEN - 2] = ck_a ; ret [Self :: PACKET_LEN - 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] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7fa4f1a6362c - std::backtrace_rs::backtrace::libunwind::trace::ha637c64ce894333a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x7fa4f1a6362c - std::backtrace_rs::backtrace::trace_unsynchronized::h47f62dea28e0c88d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x7fa4f1a6362c - std::sys_common::backtrace::_print_fmt::h9eef0abe20ede486
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stdout]    3:     0x7fa4f1a6362c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hed7f999df88cc644
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x7fa4f1ab6630 - core::fmt::rt::Argument::fmt::h1539a9308b8d058d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x7fa4f1ab6630 - core::fmt::write::h3a39390d8560d9c9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x7fa4f1a574bf - std::io::Write::write_fmt::h040b369f3a0f9cbc
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/io/mod.rs:1762:15
[INFO] [stdout]    7:     0x7fa4f1a63414 - std::sys_common::backtrace::_print::h894006fb5c6f3d45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x7fa4f1a63414 - std::sys_common::backtrace::print::h23a2d212c6fff936
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x7fa4f1a660a7 - std::panicking::default_hook::{{closure}}::h8a1d2ee00185001a
[INFO] [stdout]   10:     0x7fa4f1a65d93 - std::panicking::default_hook::h6038f2eba384e475
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x7fa4f1b31d07 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0ad024c9bdc6d768
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   12:     0x7fa4f1b31d07 - test::test_main::{{closure}}::h7500b54257359db6
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x7fa4f1a667e8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1f8f335eaa9cfaee
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
[INFO] [stdout]   14:     0x7fa4f1a667e8 - std::panicking::rust_panic_with_hook::h2b5517d590cab22e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x7fa4f1a6653e - std::panicking::begin_panic_handler::{{closure}}::h233112c06e0ef43e
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x7fa4f1a63af6 - std::sys_common::backtrace::__rust_end_short_backtrace::h6e893f24d7ebbff8
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18
[INFO] [stdout]   17:     0x7fa4f1a662a2 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x7fa4f1ab2d15 - core::panicking::panic_fmt::hbf0e066aabfa482c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55888820d23e - ublox_derive::tests::run_compare_test::hdc6aad10362bd763
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:705:9
[INFO] [stdout]   20:     0x55888822685d - ublox_derive::tests::test_ubx_packet_send::ha2185831ea9056d5
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:343:5
[INFO] [stdout]   21:     0x55888821fc07 - ublox_derive::tests::test_ubx_packet_send::{{closure}}::h97d0b0a0b4f8fbb6
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:322:26
[INFO] [stdout]   22:     0x5588882a3de6 - core::ops::function::FnOnce::call_once::h567a7fa6604c203b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x7fa4f1b37c9f - core::ops::function::FnOnce::call_once::h2b5d431d5046312d
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x7fa4f1b37c9f - test::__rust_begin_short_backtrace::h7714669af176e207
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:628:18
[INFO] [stdout]   25:     0x7fa4f1b36cb5 - test::run_test_in_process::{{closure}}::h85218797dcbcec12
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:60
[INFO] [stdout]   26:     0x7fa4f1b36cb5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h76c106ea31c14d7b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x7fa4f1b36cb5 - std::panicking::try::do_call::h3bd5d0f6620ee946
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   28:     0x7fa4f1b36cb5 - std::panicking::try::h232e535e4744fe31
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   29:     0x7fa4f1b36cb5 - std::panic::catch_unwind::h3ce3bd6ca8dbac68
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   30:     0x7fa4f1b36cb5 - test::run_test_in_process::hc97b257c9621286a
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:651:27
[INFO] [stdout]   31:     0x7fa4f1b36cb5 - test::run_test::{{closure}}::h2aa798823a438d38
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:574:43
[INFO] [stdout]   32:     0x7fa4f1afaa26 - test::run_test::{{closure}}::h87d231c78fb59832
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/test/src/lib.rs:602:41
[INFO] [stdout]   33:     0x7fa4f1afaa26 - std::sys_common::backtrace::__rust_begin_short_backtrace::he6df152596625789
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:154:18
[INFO] [stdout]   34:     0x7fa4f1affad7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::ha94be15d1e0acf36
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   35:     0x7fa4f1affad7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9dc6bd6372f16606
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x7fa4f1affad7 - std::panicking::try::do_call::h9057517f80303cd4
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:552:40
[INFO] [stdout]   37:     0x7fa4f1affad7 - std::panicking::try::he3a30b11ee45340c
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:516:19
[INFO] [stdout]   38:     0x7fa4f1affad7 - std::panic::catch_unwind::h410458cfd3528b8b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panic.rs:142:14
[INFO] [stdout]   39:     0x7fa4f1affad7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h72ac3bdb567b737b
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   40:     0x7fa4f1affad7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h38f34da3654a8344
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x7fa4f1a706a5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hc7eafaff61e32df9
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   42:     0x7fa4f1a706a5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h6ba4a5de48dd2304
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2007:9
[INFO] [stdout]   43:     0x7fa4f1a706a5 - std::sys::unix::thread::Thread::new::thread_start::he469335aef763e45
[INFO] [stdout]                                at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7fa4f17e1ac3 - <unknown>
[INFO] [stdout]   45:     0x7fa4f1872bf4 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::test_define_recv_packets
[INFO] [stdout]     tests::test_ubx_packet_recv_dyn_len
[INFO] [stdout]     tests::test_ubx_packet_recv_simple
[INFO] [stdout]     tests::test_ubx_packet_send
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.58s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "bd88fdfd819d86e5750fbdaeb7dcc887ce44017b9a3cb7066079e3b0baf213ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bd88fdfd819d86e5750fbdaeb7dcc887ce44017b9a3cb7066079e3b0baf213ec", kill_on_drop: false }`
[INFO] [stdout] bd88fdfd819d86e5750fbdaeb7dcc887ce44017b9a3cb7066079e3b0baf213ec
[INFO] testing ublox_derive-0.1.0 against beta-2023-12-22 for beta-1.76-1
[INFO] extracting crate ublox_derive 0.1.0 into /workspace/builds/worker-6-tc2/source
[INFO] validating manifest of crates.io crate ublox_derive 0.1.0 on toolchain beta-2023-12-22
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate ublox_derive 0.1.0
[INFO] finished tweaking crates.io crate ublox_derive 0.1.0
[INFO] tweaked toml for crates.io crate ublox_derive 0.1.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "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" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ddd9a87d743358572a99cc8e67223062425ddddecc39eed79a9a171754f19ca8
[INFO] running `Command { std: "docker" "start" "-a" "ddd9a87d743358572a99cc8e67223062425ddddecc39eed79a9a171754f19ca8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ddd9a87d743358572a99cc8e67223062425ddddecc39eed79a9a171754f19ca8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ddd9a87d743358572a99cc8e67223062425ddddecc39eed79a9a171754f19ca8", kill_on_drop: false }`
[INFO] [stdout] ddd9a87d743358572a99cc8e67223062425ddddecc39eed79a9a171754f19ca8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7ad0616d308fbb008bfbd1db7ff4114d2c1a568b5b44f0488efa9e86a55b5702
[INFO] running `Command { std: "docker" "start" "-a" "7ad0616d308fbb008bfbd1db7ff4114d2c1a568b5b44f0488efa9e86a55b5702", kill_on_drop: false }`
[INFO] [stderr]    Compiling ublox_derive v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.39s
[INFO] running `Command { std: "docker" "inspect" "7ad0616d308fbb008bfbd1db7ff4114d2c1a568b5b44f0488efa9e86a55b5702", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ad0616d308fbb008bfbd1db7ff4114d2c1a568b5b44f0488efa9e86a55b5702", kill_on_drop: false }`
[INFO] [stdout] 7ad0616d308fbb008bfbd1db7ff4114d2c1a568b5b44f0488efa9e86a55b5702
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d661ac0c8ccb32a57cf1cee1d7cfee4185de2f5e6001e4d77f220fdb01e5ac16
[INFO] running `Command { std: "docker" "start" "-a" "d661ac0c8ccb32a57cf1cee1d7cfee4185de2f5e6001e4d77f220fdb01e5ac16", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.75
[INFO] [stderr]    Compiling rustix v0.38.28
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling ublox_derive v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 6.16s
[INFO] running `Command { std: "docker" "inspect" "d661ac0c8ccb32a57cf1cee1d7cfee4185de2f5e6001e4d77f220fdb01e5ac16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d661ac0c8ccb32a57cf1cee1d7cfee4185de2f5e6001e4d77f220fdb01e5ac16", kill_on_drop: false }`
[INFO] [stdout] d661ac0c8ccb32a57cf1cee1d7cfee4185de2f5e6001e4d77f220fdb01e5ac16
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] dbcb9abdd362ee84cc7d1c55cb8b1722e8e4fdda70ecf66f5920bc311a031212
[INFO] running `Command { std: "docker" "start" "-a" "dbcb9abdd362ee84cc7d1c55cb8b1722e8e4fdda70ecf66f5920bc311a031212", kill_on_drop: false }`
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ublox_derive-9afc73baa68912c7)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[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_dyn_len ... FAILED
[INFO] [stdout] test tests::test_ubx_packet_recv_simple ... FAILED
[INFO] [stdout] test tests::test_ubx_packet_send ... FAILED
[INFO] [stdout] test tests::test_extend_bitflags ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_define_recv_packets stdout ----
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain 'beta-2023-12-22-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain beta-2023-12-22-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain 'beta-2023-12-22-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain beta-2023-12-22-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] first mismatch:
[INFO] [stdout] e # [doc = "All possible packets enum"] # [derive (Debug)] 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) ,) ; # [cfg (feature = "serde")] pub struct PacketSerializer < 'a , T > { class : u8 , msg_id : u8 , msg : & 'a T , } # [cfg (feature = "serde")] impl < 'a , T : SerializeUbxPacketFields > serde :: Serialize for PacketSerializer < 'a , T > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; state . serialize_entry ("class" , & self . class) ? ; state . serialize_entry ("msg_id" , & self . msg_id) ? ; self . msg . serialize_fields (& mut state) ? ; state . end () } } # [cfg (feature = "serde")] impl serde :: Serialize for PacketRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { match * self { PacketRef :: Pack1 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack1 :: CLASS , msg_id : Pack1 :: ID , msg , } . serialize (serializer) , PacketRef :: Pack2 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack2 :: CLASS , msg_id : Pack2 :: ID , msg , } . serialize (serializer) , PacketRef :: Unknown (ref pack) => pack . serialize (serializer) , } } }
[INFO] [stdout] g # [doc = "All possible packets enum"] # [derive (Debug)] 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)) ; # [cfg (feature = "serde")] pub struct PacketSerializer < 'a , T > { class : u8 , msg_id : u8 , msg : & 'a T , } # [cfg (feature = "serde")] impl < 'a , T : SerializeUbxPacketFields > serde :: Serialize for PacketSerializer < 'a , T > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; state . serialize_entry ("class" , & self . class) ? ; state . serialize_entry ("msg_id" , & self . msg_id) ? ; self . msg . serialize_fields (& mut state) ? ; state . end () } } # [cfg (feature = "serde")] impl serde :: Serialize for PacketRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { match * self { PacketRef :: Pack1 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack1 :: CLASS , msg_id : Pack1 :: ID , msg , } . serialize (serializer) , PacketRef :: Pack2 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack2 :: CLASS , msg_id : Pack2 :: ID , msg , } . serialize (serializer) , PacketRef :: Unknown (ref pack) => pack . serialize (serializer) , } } }
[INFO] [stdout] thread 'tests::test_define_recv_packets' panicked at src/tests.rs:705:9:
[INFO] [stdout] Expect:
[INFO] [stdout] # [doc = "All possible packets enum"] # [derive (Debug)] 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) ,) ; # [cfg (feature = "serde")] pub struct PacketSerializer < 'a , T > { class : u8 , msg_id : u8 , msg : & 'a T , } # [cfg (feature = "serde")] impl < 'a , T : SerializeUbxPacketFields > serde :: Serialize for PacketSerializer < 'a , T > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; state . serialize_entry ("class" , & self . class) ? ; state . serialize_entry ("msg_id" , & self . msg_id) ? ; self . msg . serialize_fields (& mut state) ? ; state . end () } } # [cfg (feature = "serde")] impl serde :: Serialize for PacketRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { match * self { PacketRef :: Pack1 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack1 :: CLASS , msg_id : Pack1 :: ID , msg , } . serialize (serializer) , PacketRef :: Pack2 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack2 :: CLASS , msg_id : Pack2 :: ID , msg , } . serialize (serializer) , PacketRef :: Unknown (ref pack) => pack . serialize (serializer) , } } }
[INFO] [stdout] Got:
[INFO] [stdout] # [doc = "All possible packets enum"] # [derive (Debug)] 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)) ; # [cfg (feature = "serde")] pub struct PacketSerializer < 'a , T > { class : u8 , msg_id : u8 , msg : & 'a T , } # [cfg (feature = "serde")] impl < 'a , T : SerializeUbxPacketFields > serde :: Serialize for PacketSerializer < 'a , T > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; state . serialize_entry ("class" , & self . class) ? ; state . serialize_entry ("msg_id" , & self . msg_id) ? ; self . msg . serialize_fields (& mut state) ? ; state . end () } } # [cfg (feature = "serde")] impl serde :: Serialize for PacketRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { match * self { PacketRef :: Pack1 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack1 :: CLASS , msg_id : Pack1 :: ID , msg , } . serialize (serializer) , PacketRef :: Pack2 (ref msg) => crate :: ubx_packets :: PacketSerializer { class : Pack2 :: CLASS , msg_id : Pack2 :: ID , msg , } . serialize (serializer) , PacketRef :: Unknown (ref pack) => pack . serialize (serializer) , } } }
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7fc133b576f6 - std::backtrace_rs::backtrace::libunwind::trace::h261606ad26a499c1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x7fc133b576f6 - std::backtrace_rs::backtrace::trace_unsynchronized::hd183f0625477fb28
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x7fc133b576f6 - std::sys_common::backtrace::_print_fmt::hd7f8fef21b4eda67
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x7fc133b576f6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h623d9b51f2f453f1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x7fc133ba9f40 - core::fmt::rt::Argument::fmt::h9f417ac76a86f368
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x7fc133ba9f40 - core::fmt::write::hc9b6faf4ac2aeff7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x7fc133b4b4af - std::io::Write::write_fmt::he04625a3a989fec3
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/io/mod.rs:1810:15
[INFO] [stdout]    7:     0x7fc133b574d4 - std::sys_common::backtrace::_print::hd5d66399c7df88a2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x7fc133b574d4 - std::sys_common::backtrace::print::he81ed2da642d37e5
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x7fc133b5a267 - std::panicking::default_hook::{{closure}}::h85773f4fa117163d
[INFO] [stdout]   10:     0x7fc133b59f4d - std::panicking::default_hook::h6a1694a91d09b278
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x7fc133c26cc7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h616ac37fa3cd6c8f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   12:     0x7fc133c26cc7 - test::test_main::{{closure}}::h00d84697cefdcbb6
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x7fc133b5a9b6 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcb3fe3b9bb537ba8
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   14:     0x7fc133b5a9b6 - std::panicking::rust_panic_with_hook::h0a7ad96e90f7145b
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x7fc133b5a702 - std::panicking::begin_panic_handler::{{closure}}::h7919090525c6485e
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x7fc133b57bf6 - std::sys_common::backtrace::__rust_end_short_backtrace::hf3289479464f7dfe
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x7fc133b5a460 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x7fc133ba6645 - core::panicking::panic_fmt::hcc9f77c5c132af55
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55f51928a22e - ublox_derive::tests::run_compare_test::hf893650f638c7d5c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:705:9
[INFO] [stdout]   20:     0x55f5192ac064 - ublox_derive::tests::test_define_recv_packets::h7ae672f89dd8a720
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:529:5
[INFO] [stdout]   21:     0x55f5192a66a7 - ublox_derive::tests::test_define_recv_packets::{{closure}}::heb33e7caaa5a9fe5
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:516:30
[INFO] [stdout]   22:     0x55f51930b546 - core::ops::function::FnOnce::call_once::h5754b6ef87b00cf7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x7fc133c2ceff - core::ops::function::FnOnce::call_once::hd64d26f405258157
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x7fc133c2ceff - test::__rust_begin_short_backtrace::he21b0b7a6d731bf9
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:627:18
[INFO] [stdout]   25:     0x7fc133c2bc81 - test::run_test_in_process::{{closure}}::hf5c73986d7bdfde2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:60
[INFO] [stdout]   26:     0x7fc133c2bc81 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h330011ad032aadc0
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x7fc133c2bc81 - std::panicking::try::do_call::he61b0a958b795a41
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   28:     0x7fc133c2bc81 - std::panicking::try::h7309da130f906eb7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   29:     0x7fc133c2bc81 - std::panic::catch_unwind::hc5c3a06fdaf0a92a
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   30:     0x7fc133c2bc81 - test::run_test_in_process::h7e7b7c71c3324e0f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:27
[INFO] [stdout]   31:     0x7fc133c2bc81 - test::run_test::{{closure}}::h1f509f28f5cf20b1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:573:43
[INFO] [stdout]   32:     0x7fc133beea66 - test::run_test::{{closure}}::h1754218abf443f6d
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:601:41
[INFO] [stdout]   33:     0x7fc133beea66 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2ee174b9d5954948
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   34:     0x7fc133bf3ac7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf60bee9c1a17ef09
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   35:     0x7fc133bf3ac7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h33d0dddec5216160
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x7fc133bf3ac7 - std::panicking::try::do_call::h144b3048b546f835
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   37:     0x7fc133bf3ac7 - std::panicking::try::h978244d04646189f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   38:     0x7fc133bf3ac7 - std::panic::catch_unwind::hdf436369d188fe86
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   39:     0x7fc133bf3ac7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h87329cbdd33c79ec
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   40:     0x7fc133bf3ac7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h401abbe67897d450
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x7fc133b648e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d7c8f150ab9c84c
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   42:     0x7fc133b648e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h570d5b005c242c15
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   43:     0x7fc133b648e5 - std::sys::unix::thread::Thread::new::thread_start::h36b0a20c0b2361ad
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7fc1338d0ac3 - <unknown>
[INFO] [stdout]   45:     0x7fc133961bf4 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_ubx_packet_recv_dyn_len stdout ----
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain 'beta-2023-12-22-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain beta-2023-12-22-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain 'beta-2023-12-22-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain beta-2023-12-22-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] first mismatch:
[INFO] [stdout] e # [doc = ""] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = None ; const MAX_PAYLOAD_LEN : u16 = 38u16 ; } # [doc = ""] # [doc = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn f1_raw (& self) -> & [u8] { let val = & self . 0 [0usize .. (0usize + 8usize)] ; val } # [doc = ""] # [inline] pub fn f1 (& self) -> & str { let val = & self . 0 [0usize .. (0usize + 8usize)] ; let val = unpack_str (val) ; val } # [doc = ""] # [inline] pub fn rest (& self) -> & [u8] { & self . 0 [8usize ..] } fn validate (payload : & [u8]) -> Result < () , ParserError > { let got = payload . len () ; let min = 8usize ; if got >= min { Ok (()) } else { Err (ParserError :: InvalidPacketLen { packet : "Test" , expect : min , got , }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (f1) , & self . f1 ()) . field (stringify ! (rest) , & self . rest ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (f1) , & self . f1 ()) ? ; state . serialize_entry (stringify ! (rest) , & crate :: ubx_packets :: FieldIter (self . rest ()) ,) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] g # [doc = ""] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = None ; const MAX_PAYLOAD_LEN : u16 = 38u16 ; } # [doc = ""] # [doc = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn f1_raw (& self) -> & [u8] { let val = & self . 0 [0usize .. (0usize + 8usize)] ; val } # [doc = ""] # [inline] pub fn f1 (& self) -> & str { let val = & self . 0 [0usize .. (0usize + 8usize)] ; let val = unpack_str (val) ; val } # [doc = ""] # [inline] pub fn rest (& self) -> & [u8] { & self . 0 [8usize ..] } fn validate (payload : & [u8]) -> Result < () , ParserError > { let got = payload . len () ; let min = 8usize ; ; if got >= min { Ok (()) } else { Err (ParserError :: InvalidPacketLen { packet : "Test" , expect : min , got }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (f1) , & self . f1 ()) . field (stringify ! (rest) , & self . rest ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (f1) , & self . f1 ()) ? ; state . serialize_entry (stringify ! (rest) , & crate :: ubx_packets :: FieldIter (self . rest ())) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] thread 'tests::test_ubx_packet_recv_dyn_len' panicked at src/tests.rs:705:9:
[INFO] [stdout] Expect:
[INFO] [stdout] # [doc = ""] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = None ; const MAX_PAYLOAD_LEN : u16 = 38u16 ; } # [doc = ""] # [doc = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn f1_raw (& self) -> & [u8] { let val = & self . 0 [0usize .. (0usize + 8usize)] ; val } # [doc = ""] # [inline] pub fn f1 (& self) -> & str { let val = & self . 0 [0usize .. (0usize + 8usize)] ; let val = unpack_str (val) ; val } # [doc = ""] # [inline] pub fn rest (& self) -> & [u8] { & self . 0 [8usize ..] } fn validate (payload : & [u8]) -> Result < () , ParserError > { let got = payload . len () ; let min = 8usize ; if got >= min { Ok (()) } else { Err (ParserError :: InvalidPacketLen { packet : "Test" , expect : min , got , }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (f1) , & self . f1 ()) . field (stringify ! (rest) , & self . rest ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (f1) , & self . f1 ()) ? ; state . serialize_entry (stringify ! (rest) , & crate :: ubx_packets :: FieldIter (self . rest ()) ,) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] Got:
[INFO] [stdout] # [doc = ""] pub struct Test ; impl UbxPacketMeta for Test { const CLASS : u8 = 1u8 ; const ID : u8 = 2u8 ; const FIXED_PAYLOAD_LEN : Option < u16 > = None ; const MAX_PAYLOAD_LEN : u16 = 38u16 ; } # [doc = ""] # [doc = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn f1_raw (& self) -> & [u8] { let val = & self . 0 [0usize .. (0usize + 8usize)] ; val } # [doc = ""] # [inline] pub fn f1 (& self) -> & str { let val = & self . 0 [0usize .. (0usize + 8usize)] ; let val = unpack_str (val) ; val } # [doc = ""] # [inline] pub fn rest (& self) -> & [u8] { & self . 0 [8usize ..] } fn validate (payload : & [u8]) -> Result < () , ParserError > { let got = payload . len () ; let min = 8usize ; ; if got >= min { Ok (()) } else { Err (ParserError :: InvalidPacketLen { packet : "Test" , expect : min , got }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (f1) , & self . f1 ()) . field (stringify ! (rest) , & self . rest ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (f1) , & self . f1 ()) ? ; state . serialize_entry (stringify ! (rest) , & crate :: ubx_packets :: FieldIter (self . rest ())) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7fc133b576f6 - std::backtrace_rs::backtrace::libunwind::trace::h261606ad26a499c1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x7fc133b576f6 - std::backtrace_rs::backtrace::trace_unsynchronized::hd183f0625477fb28
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x7fc133b576f6 - std::sys_common::backtrace::_print_fmt::hd7f8fef21b4eda67
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x7fc133b576f6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h623d9b51f2f453f1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x7fc133ba9f40 - core::fmt::rt::Argument::fmt::h9f417ac76a86f368
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x7fc133ba9f40 - core::fmt::write::hc9b6faf4ac2aeff7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x7fc133b4b4af - std::io::Write::write_fmt::he04625a3a989fec3
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/io/mod.rs:1810:15
[INFO] [stdout]    7:     0x7fc133b574d4 - std::sys_common::backtrace::_print::hd5d66399c7df88a2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x7fc133b574d4 - std::sys_common::backtrace::print::he81ed2da642d37e5
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x7fc133b5a267 - std::panicking::default_hook::{{closure}}::h85773f4fa117163d
[INFO] [stdout]   10:     0x7fc133b59f4d - std::panicking::default_hook::h6a1694a91d09b278
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x7fc133c26cc7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h616ac37fa3cd6c8f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   12:     0x7fc133c26cc7 - test::test_main::{{closure}}::h00d84697cefdcbb6
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x7fc133b5a9b6 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcb3fe3b9bb537ba8
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   14:     0x7fc133b5a9b6 - std::panicking::rust_panic_with_hook::h0a7ad96e90f7145b
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x7fc133b5a702 - std::panicking::begin_panic_handler::{{closure}}::h7919090525c6485e
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x7fc133b57bf6 - std::sys_common::backtrace::__rust_end_short_backtrace::hf3289479464f7dfe
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x7fc133b5a460 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x7fc133ba6645 - core::panicking::panic_fmt::hcc9f77c5c132af55
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55f51928a22e - ublox_derive::tests::run_compare_test::hf893650f638c7d5c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:705:9
[INFO] [stdout]   20:     0x55f51929ca0c - ublox_derive::tests::test_ubx_packet_recv_dyn_len::h4df2e6b74425d39b
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:225:5
[INFO] [stdout]   21:     0x55f519297007 - ublox_derive::tests::test_ubx_packet_recv_dyn_len::{{closure}}::hd75d052b5ddcf3cb
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:205:34
[INFO] [stdout]   22:     0x55f51930b816 - core::ops::function::FnOnce::call_once::hce7407abbdf47d71
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x7fc133c2ceff - core::ops::function::FnOnce::call_once::hd64d26f405258157
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x7fc133c2ceff - test::__rust_begin_short_backtrace::he21b0b7a6d731bf9
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:627:18
[INFO] [stdout]   25:     0x7fc133c2bc81 - test::run_test_in_process::{{closure}}::hf5c73986d7bdfde2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:60
[INFO] [stdout]   26:     0x7fc133c2bc81 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h330011ad032aadc0
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x7fc133c2bc81 - std::panicking::try::do_call::he61b0a958b795a41
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   28:     0x7fc133c2bc81 - std::panicking::try::h7309da130f906eb7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   29:     0x7fc133c2bc81 - std::panic::catch_unwind::hc5c3a06fdaf0a92a
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   30:     0x7fc133c2bc81 - test::run_test_in_process::h7e7b7c71c3324e0f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:27
[INFO] [stdout]   31:     0x7fc133c2bc81 - test::run_test::{{closure}}::h1f509f28f5cf20b1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:573:43
[INFO] [stdout]   32:     0x7fc133beea66 - test::run_test::{{closure}}::h1754218abf443f6d
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:601:41
[INFO] [stdout]   33:     0x7fc133beea66 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2ee174b9d5954948
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   34:     0x7fc133bf3ac7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf60bee9c1a17ef09
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   35:     0x7fc133bf3ac7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h33d0dddec5216160
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x7fc133bf3ac7 - std::panicking::try::do_call::h144b3048b546f835
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   37:     0x7fc133bf3ac7 - std::panicking::try::h978244d04646189f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   38:     0x7fc133bf3ac7 - std::panic::catch_unwind::hdf436369d188fe86
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   39:     0x7fc133bf3ac7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h87329cbdd33c79ec
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   40:     0x7fc133bf3ac7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h401abbe67897d450
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x7fc133b648e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d7c8f150ab9c84c
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   42:     0x7fc133b648e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h570d5b005c242c15
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   43:     0x7fc133b648e5 - std::sys::unix::thread::Thread::new::thread_start::h36b0a20c0b2361ad
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7fc1338d0ac3 - <unknown>
[INFO] [stdout]   45:     0x7fc133961bf4 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_ubx_packet_recv_simple stdout ----
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain 'beta-2023-12-22-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain beta-2023-12-22-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain 'beta-2023-12-22-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain beta-2023-12-22-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[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 = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn itow (& self) -> u32 { let val = < u32 > :: from_le_bytes ([self . 0 [0usize] , self . 0 [1usize] , self . 0 [2usize] , self . 0 [3usize] ,]) ; val } # [doc = "this is lat"] # [inline] pub fn lat_degrees_raw (& self) -> i32 { let val = < i32 > :: from_le_bytes ([self . 0 [4usize] , self . 0 [5usize] , self . 0 [6usize] , self . 0 [7usize] ,]) ; val } # [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) ; let val = val * 1e-7 ; val } # [doc = "this is a"] # [inline] pub fn a (& self) -> u8 { let val = self . 0 [8usize] ; val } # [doc = ""] # [inline] pub fn reserved1 (& self) -> [u8 ; 5] { let val = [self . 0 [9usize] , self . 0 [10usize] , self . 0 [11usize] , self . 0 [12usize] , self . 0 [13usize] ,] ; val } # [doc = ""] # [inline] pub fn flags_raw (& self) -> u8 { let val = self . 0 [14usize] ; val } # [doc = ""] # [inline] pub fn flags (& self) -> Flags { let val = self . 0 [14usize] ; let val = < Flags > :: from_unchecked (val) ; val } # [doc = ""] # [inline] pub fn b (& self) -> i8 { let val = < i8 > :: from_le_bytes ([self . 0 [15usize]]) ; val } 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 , }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (itow) , & self . itow ()) . field (stringify ! (lat) , & self . lat_degrees ()) . field (stringify ! (a) , & self . a ()) . field (stringify ! (reserved1) , & self . reserved1 ()) . field (stringify ! (flags) , & self . flags ()) . field (stringify ! (b) , & self . b ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (itow) , & self . itow ()) ? ; state . serialize_entry (stringify ! (lat) , & self . lat_degrees ()) ? ; state . serialize_entry (stringify ! (a) , & self . a ()) ? ; state . serialize_entry (stringify ! (reserved1) , & self . reserved1 ()) ? ; state . serialize_entry (stringify ! (flags) , & self . flags ()) ? ; state . serialize_entry (stringify ! (b) , & self . b ()) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[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 = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn itow (& self) -> u32 { let val = < u32 > :: from_le_bytes ([self . 0 [0usize] , self . 0 [1usize] , self . 0 [2usize] , self . 0 [3usize]]) ; val } # [doc = "this is lat"] # [inline] pub fn lat_degrees_raw (& self) -> i32 { let val = < i32 > :: from_le_bytes ([self . 0 [4usize] , self . 0 [5usize] , self . 0 [6usize] , self . 0 [7usize]]) ; val } # [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) ; let val = val * 1e-7 ; val } # [doc = "this is a"] # [inline] pub fn a (& self) -> u8 { let val = self . 0 [8usize] ; val } # [doc = ""] # [inline] pub fn reserved1 (& self) -> [u8 ; 5] { let val = [self . 0 [9usize] , self . 0 [10usize] , self . 0 [11usize] , self . 0 [12usize] , self . 0 [13usize]] ; val } # [doc = ""] # [inline] pub fn flags_raw (& self) -> u8 { let val = self . 0 [14usize] ; val } # [doc = ""] # [inline] pub fn flags (& self) -> Flags { let val = self . 0 [14usize] ; let val = < Flags > :: from_unchecked (val) ; val } # [doc = ""] # [inline] pub fn b (& self) -> i8 { let val = < i8 > :: from_le_bytes ([self . 0 [15usize]]) ; val } 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 }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (itow) , & self . itow ()) . field (stringify ! (lat) , & self . lat_degrees ()) . field (stringify ! (a) , & self . a ()) . field (stringify ! (reserved1) , & self . reserved1 ()) . field (stringify ! (flags) , & self . flags ()) . field (stringify ! (b) , & self . b ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (itow) , & self . itow ()) ? ; state . serialize_entry (stringify ! (lat) , & self . lat_degrees ()) ? ; state . serialize_entry (stringify ! (a) , & self . a ()) ? ; state . serialize_entry (stringify ! (reserved1) , & self . reserved1 ()) ? ; state . serialize_entry (stringify ! (flags) , & self . flags ()) ? ; state . serialize_entry (stringify ! (b) , & self . b ()) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] thread 'tests::test_ubx_packet_recv_simple' panicked at src/tests.rs:705:9:
[INFO] [stdout] 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 = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn itow (& self) -> u32 { let val = < u32 > :: from_le_bytes ([self . 0 [0usize] , self . 0 [1usize] , self . 0 [2usize] , self . 0 [3usize] ,]) ; val } # [doc = "this is lat"] # [inline] pub fn lat_degrees_raw (& self) -> i32 { let val = < i32 > :: from_le_bytes ([self . 0 [4usize] , self . 0 [5usize] , self . 0 [6usize] , self . 0 [7usize] ,]) ; val } # [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) ; let val = val * 1e-7 ; val } # [doc = "this is a"] # [inline] pub fn a (& self) -> u8 { let val = self . 0 [8usize] ; val } # [doc = ""] # [inline] pub fn reserved1 (& self) -> [u8 ; 5] { let val = [self . 0 [9usize] , self . 0 [10usize] , self . 0 [11usize] , self . 0 [12usize] , self . 0 [13usize] ,] ; val } # [doc = ""] # [inline] pub fn flags_raw (& self) -> u8 { let val = self . 0 [14usize] ; val } # [doc = ""] # [inline] pub fn flags (& self) -> Flags { let val = self . 0 [14usize] ; let val = < Flags > :: from_unchecked (val) ; val } # [doc = ""] # [inline] pub fn b (& self) -> i8 { let val = < i8 > :: from_le_bytes ([self . 0 [15usize]]) ; val } 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 , }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (itow) , & self . itow ()) . field (stringify ! (lat) , & self . lat_degrees ()) . field (stringify ! (a) , & self . a ()) . field (stringify ! (reserved1) , & self . reserved1 ()) . field (stringify ! (flags) , & self . flags ()) . field (stringify ! (b) , & self . b ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (itow) , & self . itow ()) ? ; state . serialize_entry (stringify ! (lat) , & self . lat_degrees ()) ? ; state . serialize_entry (stringify ! (a) , & self . a ()) ? ; state . serialize_entry (stringify ! (reserved1) , & self . reserved1 ()) ? ; state . serialize_entry (stringify ! (flags) , & self . flags ()) ? ; state . serialize_entry (stringify ! (b) , & self . b ()) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[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 = "Contains a reference to an underlying buffer, contains accessor methods to retrieve data."] pub struct TestRef < 'a > (& 'a [u8]) ; impl < 'a > TestRef < 'a > { # [inline] pub fn as_bytes (& self) -> & [u8] { self . 0 } # [doc = ""] # [inline] pub fn itow (& self) -> u32 { let val = < u32 > :: from_le_bytes ([self . 0 [0usize] , self . 0 [1usize] , self . 0 [2usize] , self . 0 [3usize]]) ; val } # [doc = "this is lat"] # [inline] pub fn lat_degrees_raw (& self) -> i32 { let val = < i32 > :: from_le_bytes ([self . 0 [4usize] , self . 0 [5usize] , self . 0 [6usize] , self . 0 [7usize]]) ; val } # [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) ; let val = val * 1e-7 ; val } # [doc = "this is a"] # [inline] pub fn a (& self) -> u8 { let val = self . 0 [8usize] ; val } # [doc = ""] # [inline] pub fn reserved1 (& self) -> [u8 ; 5] { let val = [self . 0 [9usize] , self . 0 [10usize] , self . 0 [11usize] , self . 0 [12usize] , self . 0 [13usize]] ; val } # [doc = ""] # [inline] pub fn flags_raw (& self) -> u8 { let val = self . 0 [14usize] ; val } # [doc = ""] # [inline] pub fn flags (& self) -> Flags { let val = self . 0 [14usize] ; let val = < Flags > :: from_unchecked (val) ; val } # [doc = ""] # [inline] pub fn b (& self) -> i8 { let val = < i8 > :: from_le_bytes ([self . 0 [15usize]]) ; val } 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 }) } } } impl core :: fmt :: Debug for TestRef < '_ > { fn fmt (& self , f : & mut core :: fmt :: Formatter < '_ >) -> core :: fmt :: Result { f . debug_struct ("Test") . field (stringify ! (itow) , & self . itow ()) . field (stringify ! (lat) , & self . lat_degrees ()) . field (stringify ! (a) , & self . a ()) . field (stringify ! (reserved1) , & self . reserved1 ()) . field (stringify ! (flags) , & self . flags ()) . field (stringify ! (b) , & self . b ()) . finish () } } # [cfg (feature = "serde")] impl SerializeUbxPacketFields for TestRef < '_ > { fn serialize_fields < S > (& self , state : & mut S) -> Result < () , S :: Error > where S : serde :: ser :: SerializeMap , { state . serialize_entry (stringify ! (itow) , & self . itow ()) ? ; state . serialize_entry (stringify ! (lat) , & self . lat_degrees ()) ? ; state . serialize_entry (stringify ! (a) , & self . a ()) ? ; state . serialize_entry (stringify ! (reserved1) , & self . reserved1 ()) ? ; state . serialize_entry (stringify ! (flags) , & self . flags ()) ? ; state . serialize_entry (stringify ! (b) , & self . b ()) ? ; Ok (()) } } # [cfg (feature = "serde")] impl serde :: Serialize for TestRef < '_ > { fn serialize < S > (& self , serializer : S) -> Result < S :: Ok , S :: Error > where S : serde :: Serializer , { let mut state = serializer . serialize_map (None) ? ; self . serialize_fields (& mut state) ? ; state . end () } }
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7fc133b576f6 - std::backtrace_rs::backtrace::libunwind::trace::h261606ad26a499c1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x7fc133b576f6 - std::backtrace_rs::backtrace::trace_unsynchronized::hd183f0625477fb28
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stdout]    2:     0x7fc133b576f6 - std::sys_common::backtrace::_print_fmt::hd7f8fef21b4eda67
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x7fc133b576f6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h623d9b51f2f453f1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x7fc133ba9f40 - core::fmt::rt::Argument::fmt::h9f417ac76a86f368
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x7fc133ba9f40 - core::fmt::write::hc9b6faf4ac2aeff7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x7fc133b4b4af - std::io::Write::write_fmt::he04625a3a989fec3
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/io/mod.rs:1810:15
[INFO] [stdout]    7:     0x7fc133b574d4 - std::sys_common::backtrace::_print::hd5d66399c7df88a2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x7fc133b574d4 - std::sys_common::backtrace::print::he81ed2da642d37e5
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x7fc133b5a267 - std::panicking::default_hook::{{closure}}::h85773f4fa117163d
[INFO] [stdout]   10:     0x7fc133b59f4d - std::panicking::default_hook::h6a1694a91d09b278
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x7fc133c26cc7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h616ac37fa3cd6c8f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   12:     0x7fc133c26cc7 - test::test_main::{{closure}}::h00d84697cefdcbb6
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x7fc133b5a9b6 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcb3fe3b9bb537ba8
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   14:     0x7fc133b5a9b6 - std::panicking::rust_panic_with_hook::h0a7ad96e90f7145b
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x7fc133b5a702 - std::panicking::begin_panic_handler::{{closure}}::h7919090525c6485e
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x7fc133b57bf6 - std::sys_common::backtrace::__rust_end_short_backtrace::hf3289479464f7dfe
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x7fc133b5a460 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x7fc133ba6645 - core::panicking::panic_fmt::hcc9f77c5c132af55
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55f51928a22e - ublox_derive::tests::run_compare_test::hf893650f638c7d5c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:705:9
[INFO] [stdout]   20:     0x55f519296e20 - ublox_derive::tests::test_ubx_packet_recv_simple::hbc07ac4759bd64b6
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:37:5
[INFO] [stdout]   21:     0x55f51928c787 - ublox_derive::tests::test_ubx_packet_recv_simple::{{closure}}::h7f5dfeccf70973d4
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:12:33
[INFO] [stdout]   22:     0x55f51930b886 - core::ops::function::FnOnce::call_once::hd204adf0c944dedf
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x7fc133c2ceff - core::ops::function::FnOnce::call_once::hd64d26f405258157
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x7fc133c2ceff - test::__rust_begin_short_backtrace::he21b0b7a6d731bf9
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:627:18
[INFO] [stdout]   25:     0x7fc133c2bc81 - test::run_test_in_process::{{closure}}::hf5c73986d7bdfde2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:60
[INFO] [stdout]   26:     0x7fc133c2bc81 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h330011ad032aadc0
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x7fc133c2bc81 - std::panicking::try::do_call::he61b0a958b795a41
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   28:     0x7fc133c2bc81 - std::panicking::try::h7309da130f906eb7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   29:     0x7fc133c2bc81 - std::panic::catch_unwind::hc5c3a06fdaf0a92a
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   30:     0x7fc133c2bc81 - test::run_test_in_process::h7e7b7c71c3324e0f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:27
[INFO] [stdout]   31:     0x7fc133c2bc81 - test::run_test::{{closure}}::h1f509f28f5cf20b1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:573:43
[INFO] [stdout]   32:     0x7fc133beea66 - test::run_test::{{closure}}::h1754218abf443f6d
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:601:41
[INFO] [stdout]   33:     0x7fc133beea66 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2ee174b9d5954948
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   34:     0x7fc133bf3ac7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf60bee9c1a17ef09
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   35:     0x7fc133bf3ac7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h33d0dddec5216160
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x7fc133bf3ac7 - std::panicking::try::do_call::h144b3048b546f835
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   37:     0x7fc133bf3ac7 - std::panicking::try::h978244d04646189f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   38:     0x7fc133bf3ac7 - std::panic::catch_unwind::hdf436369d188fe86
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   39:     0x7fc133bf3ac7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h87329cbdd33c79ec
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   40:     0x7fc133bf3ac7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h401abbe67897d450
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x7fc133b648e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d7c8f150ab9c84c
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   42:     0x7fc133b648e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h570d5b005c242c15
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   43:     0x7fc133b648e5 - std::sys::unix::thread::Thread::new::thread_start::h36b0a20c0b2361ad
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7fc1338d0ac3 - <unknown>
[INFO] [stdout]   45:     0x7fc133961bf4 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_ubx_packet_send stdout ----
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain 'beta-2023-12-22-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain beta-2023-12-22-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[INFO] [stdout] warning=Internal rustfmt error
[INFO] [stdout] error: 'rustfmt' is not installed for the toolchain 'beta-2023-12-22-x86_64-unknown-linux-gnu'
[INFO] [stdout] To install, run `rustup component add rustfmt --toolchain beta-2023-12-22-x86_64-unknown-linux-gnu`
[INFO] [stdout] 
[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 to construct packets, see the crate-level documentation for more information"] # [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 .. (Self :: PACKET_LEN - 2)]) ; ret [Self :: PACKET_LEN - 2] = ck_a ; ret [Self :: PACKET_LEN - 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 to construct packets, see the crate-level documentation for more information"] # [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 .. (Self :: PACKET_LEN - 2)]) ; ret [Self :: PACKET_LEN - 2] = ck_a ; ret [Self :: PACKET_LEN - 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 src/tests.rs:705:9:
[INFO] [stdout] 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 to construct packets, see the crate-level documentation for more information"] # [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 .. (Self :: PACKET_LEN - 2)]) ; ret [Self :: PACKET_LEN - 2] = ck_a ; ret [Self :: PACKET_LEN - 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 to construct packets, see the crate-level documentation for more information"] # [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 .. (Self :: PACKET_LEN - 2)]) ; ret [Self :: PACKET_LEN - 2] = ck_a ; ret [Self :: PACKET_LEN - 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] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x7fc133b576f6 - std::backtrace_rs::backtrace::libunwind::trace::h261606ad26a499c1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x7fc133b576f6 - std::backtrace_rs::backtrace::trace_unsynchronized::hd183f0625477fb28
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x7fc133b576f6 - std::sys_common::backtrace::_print_fmt::hd7f8fef21b4eda67
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x7fc133b576f6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h623d9b51f2f453f1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x7fc133ba9f40 - core::fmt::rt::Argument::fmt::h9f417ac76a86f368
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x7fc133ba9f40 - core::fmt::write::hc9b6faf4ac2aeff7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x7fc133b4b4af - std::io::Write::write_fmt::he04625a3a989fec3
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/io/mod.rs:1810:15
[INFO] [stdout]    7:     0x7fc133b574d4 - std::sys_common::backtrace::_print::hd5d66399c7df88a2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x7fc133b574d4 - std::sys_common::backtrace::print::he81ed2da642d37e5
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x7fc133b5a267 - std::panicking::default_hook::{{closure}}::h85773f4fa117163d
[INFO] [stdout]   10:     0x7fc133b59f4d - std::panicking::default_hook::h6a1694a91d09b278
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x7fc133c26cc7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h616ac37fa3cd6c8f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   12:     0x7fc133c26cc7 - test::test_main::{{closure}}::h00d84697cefdcbb6
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x7fc133b5a9b6 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcb3fe3b9bb537ba8
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   14:     0x7fc133b5a9b6 - std::panicking::rust_panic_with_hook::h0a7ad96e90f7145b
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x7fc133b5a702 - std::panicking::begin_panic_handler::{{closure}}::h7919090525c6485e
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x7fc133b57bf6 - std::sys_common::backtrace::__rust_end_short_backtrace::hf3289479464f7dfe
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x7fc133b5a460 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x7fc133ba6645 - core::panicking::panic_fmt::hcc9f77c5c132af55
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55f51928a22e - ublox_derive::tests::run_compare_test::hf893650f638c7d5c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:705:9
[INFO] [stdout]   20:     0x55f5192a383d - ublox_derive::tests::test_ubx_packet_send::h424cbc63e89ec27d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:343:5
[INFO] [stdout]   21:     0x55f51929cbe7 - ublox_derive::tests::test_ubx_packet_send::{{closure}}::hcb9dced8832242ee
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests.rs:322:26
[INFO] [stdout]   22:     0x55f51930b286 - core::ops::function::FnOnce::call_once::h04ca92165e569cf4
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x7fc133c2ceff - core::ops::function::FnOnce::call_once::hd64d26f405258157
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x7fc133c2ceff - test::__rust_begin_short_backtrace::he21b0b7a6d731bf9
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:627:18
[INFO] [stdout]   25:     0x7fc133c2bc81 - test::run_test_in_process::{{closure}}::hf5c73986d7bdfde2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:60
[INFO] [stdout]   26:     0x7fc133c2bc81 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h330011ad032aadc0
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x7fc133c2bc81 - std::panicking::try::do_call::he61b0a958b795a41
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   28:     0x7fc133c2bc81 - std::panicking::try::h7309da130f906eb7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   29:     0x7fc133c2bc81 - std::panic::catch_unwind::hc5c3a06fdaf0a92a
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   30:     0x7fc133c2bc81 - test::run_test_in_process::h7e7b7c71c3324e0f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:27
[INFO] [stdout]   31:     0x7fc133c2bc81 - test::run_test::{{closure}}::h1f509f28f5cf20b1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:573:43
[INFO] [stdout]   32:     0x7fc133beea66 - test::run_test::{{closure}}::h1754218abf443f6d
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:601:41
[INFO] [stdout]   33:     0x7fc133beea66 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2ee174b9d5954948
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   34:     0x7fc133bf3ac7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf60bee9c1a17ef09
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   35:     0x7fc133bf3ac7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h33d0dddec5216160
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x7fc133bf3ac7 - std::panicking::try::do_call::h144b3048b546f835
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   37:     0x7fc133bf3ac7 - std::panicking::try::h978244d04646189f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   38:     0x7fc133bf3ac7 - std::panic::catch_unwind::hdf436369d188fe86
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   39:     0x7fc133bf3ac7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h87329cbdd33c79ec
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   40:     0x7fc133bf3ac7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h401abbe67897d450
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x7fc133b648e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d7c8f150ab9c84c
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   42:     0x7fc133b648e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h570d5b005c242c15
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   43:     0x7fc133b648e5 - std::sys::unix::thread::Thread::new::thread_start::h36b0a20c0b2361ad
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7fc1338d0ac3 - <unknown>
[INFO] [stdout]   45:     0x7fc133961bf4 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::test_define_recv_packets
[INFO] [stdout]     tests::test_ubx_packet_recv_dyn_len
[INFO] [stdout]     tests::test_ubx_packet_recv_simple
[INFO] [stdout]     tests::test_ubx_packet_send
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.53s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "dbcb9abdd362ee84cc7d1c55cb8b1722e8e4fdda70ecf66f5920bc311a031212", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dbcb9abdd362ee84cc7d1c55cb8b1722e8e4fdda70ecf66f5920bc311a031212", kill_on_drop: false }`
[INFO] [stdout] dbcb9abdd362ee84cc7d1c55cb8b1722e8e4fdda70ecf66f5920bc311a031212
