[INFO] fetching crate smbc 0.1.0...
[INFO] testing smbc-0.1.0 against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] extracting crate smbc 0.1.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate smbc 0.1.0
[INFO] finished tweaking crates.io crate smbc 0.1.0
[INFO] tweaked toml for crates.io crate smbc 0.1.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate smbc 0.1.0 on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 7 packages to latest compatible versions
[INFO] [stderr]       Adding libc v0.1.12 (available: v0.2.179)
[INFO] [stderr]       Adding log v0.3.9 (available: v0.4.29)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d5420b342ddafdfb6d0a859a51d7960a3fbb08a3539c4685df3ce909342a4c9e
[INFO] running `Command { std: "docker" "start" "-a" "d5420b342ddafdfb6d0a859a51d7960a3fbb08a3539c4685df3ce909342a4c9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d5420b342ddafdfb6d0a859a51d7960a3fbb08a3539c4685df3ce909342a4c9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d5420b342ddafdfb6d0a859a51d7960a3fbb08a3539c4685df3ce909342a4c9e", kill_on_drop: false }`
[INFO] [stdout] d5420b342ddafdfb6d0a859a51d7960a3fbb08a3539c4685df3ce909342a4c9e
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 04ca2dee94d721c762b1e16129c2a9388fb25e8e01e4b28546cd193aad9814aa
[INFO] running `Command { std: "docker" "start" "-a" "04ca2dee94d721c762b1e16129c2a9388fb25e8e01e4b28546cd193aad9814aa", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling smbclient-sys v0.1.0
[INFO] [stderr]    Compiling bitflags v0.3.3
[INFO] [stderr]    Compiling libc v0.1.12
[INFO] [stderr]    Compiling nix v0.4.3
[INFO] [stderr]    Compiling smbc v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/util.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | use libc::{self, c_char, c_int};
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/util.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 |     Ok(try!(CString::new(p.as_ref())))
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:151:23
[INFO] [stdout]     |
[INFO] [stdout] 151 |             let ctx = try!(result_from_ptr_mut(smbc_new_context()));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:161:24
[INFO] [stdout]     |
[INFO] [stdout] 161 |             smbc.ctx = try!(result_from_ptr_mut(smbc_init_context(ctx)));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:209:23
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let open_fn = try_ufn!(smbc_getFunctionOpen <- self);
[INFO] [stdout]     |                       -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:211:20
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:215:22
[INFO] [stdout]     |
[INFO] [stdout] 215 |             let fd = try!(result_from_ptr_mut(open_fn(self.ctx,
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:217:55
[INFO] [stdout]     |
[INFO] [stdout] 217 | ...                   try!(options.to_flags()),
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:275:23
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let stat_fn = try_ufn!(smbc_getFunctionStat <- self);
[INFO] [stdout]     |                       -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:276:20
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |         try!(to_result_with_le(unsafe { mkdir_fn(self.ctx, path.as_ptr(), 0o755) }));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:283:24
[INFO] [stdout]     |
[INFO] [stdout] 283 |         let mkdir_fn = try_ufn!(smbc_getFunctionMkdir <- self);
[INFO] [stdout]     |                        --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:284:20
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         try!(to_result_with_le(unsafe { rmdir_fn(self.ctx, path.as_ptr()) }));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:297:24
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let rmdir_fn = try_ufn!(smbc_getFunctionRmdir <- self);
[INFO] [stdout]     |                        --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:298:20
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:428:23
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let read_fn = try_ufn!(smbc_getFunctionRead <- self.smbc);
[INFO] [stdout]     |                       ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:429:26
[INFO] [stdout]     |
[INFO] [stdout] 429 |         let bytes_read = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:443:24
[INFO] [stdout]     |
[INFO] [stdout] 443 |         let write_fn = try_ufn!(smbc_getFunctionWrite <- self.smbc);
[INFO] [stdout]     |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:444:27
[INFO] [stdout]     |
[INFO] [stdout] 444 |         let bytes_wrote = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:463:24
[INFO] [stdout]     |
[INFO] [stdout] 463 |         let lseek_fn = try_ufn!(smbc_getFunctionLseek <- self.smbc);
[INFO] [stdout]     |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:469:19
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let res = try!(to_result_with_errno(unsafe { lseek_fn(self.smbc.ctx, self.fd, off, whence) }, libc::EINVAL));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 |     AuthCallbackPaniced(Box<error::Error>),
[INFO] [stdout]    |                             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     AuthCallbackPaniced(Box<dyn error::Error>),
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/smbc.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 83 |     auth_fn: &'a for<'b> Fn(&'b str, &'b str) -> (Cow<'a, str>, Cow<'a, str>, Cow<'a, str>),
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 83 |     auth_fn: &'a dyn for<'b> Fn(&'b str, &'b str) -> (Cow<'a, str>, Cow<'a, str>, Cow<'a, str>),
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:51:47
[INFO] [stdout]    |
[INFO] [stdout] 51 |             Error::NewContext(ref err) => err.description(),
[INFO] [stdout]    |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:52:48
[INFO] [stdout]    |
[INFO] [stdout] 52 |             Error::InitContext(ref err) => err.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:53:39
[INFO] [stdout]    |
[INFO] [stdout] 53 |             Error::Io(ref err) => err.description(),
[INFO] [stdout]    |                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:54:46
[INFO] [stdout]    |
[INFO] [stdout] 54 |             Error::NulInPath(ref err) => err.description(),
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stat_fn`
[INFO] [stdout]    --> src/smbc.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let stat_fn = try_ufn!(smbc_getFunctionStat <- self);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stat_fn`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/smbc.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let path = try!(cstring(path));
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:285:32
[INFO] [stdout]     |
[INFO] [stdout] 285 |         try!(to_result_with_le(unsafe { mkdir_fn(self.ctx, path.as_ptr(), 0o755) }));
[INFO] [stdout]     |                                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:299:32
[INFO] [stdout]     |
[INFO] [stdout] 299 |         try!(to_result_with_le(unsafe { rmdir_fn(self.ctx, path.as_ptr()) }));
[INFO] [stdout]     |                                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:429:49
[INFO] [stdout]     |
[INFO] [stdout] 429 |         let bytes_read = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                                                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:444:50
[INFO] [stdout]     |
[INFO] [stdout] 444 |         let bytes_wrote = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                                                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:469:45
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let res = try!(to_result_with_errno(unsafe { lseek_fn(self.smbc.ctx, self.fd, off, whence) }, libc::EINVAL));
[INFO] [stdout]     |                                             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `result_from_ptr` is never used
[INFO] [stdout]   --> src/util.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn result_from_ptr<T>(ptr: *const T) -> io::Result<*const T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMBC_FALSE` is never used
[INFO] [stdout]   --> src/smbc.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const SMBC_FALSE: smbc_bool = 0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.50s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.4.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "04ca2dee94d721c762b1e16129c2a9388fb25e8e01e4b28546cd193aad9814aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04ca2dee94d721c762b1e16129c2a9388fb25e8e01e4b28546cd193aad9814aa", kill_on_drop: false }`
[INFO] [stdout] 04ca2dee94d721c762b1e16129c2a9388fb25e8e01e4b28546cd193aad9814aa
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 99c973f517a217907b7fa5abd92ead054d50f4737768e453b359dfa31143787c
[INFO] running `Command { std: "docker" "start" "-a" "99c973f517a217907b7fa5abd92ead054d50f4737768e453b359dfa31143787c", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/util.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | use libc::{self, c_char, c_int};
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/util.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 |     Ok(try!(CString::new(p.as_ref())))
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:151:23
[INFO] [stdout]     |
[INFO] [stdout] 151 |             let ctx = try!(result_from_ptr_mut(smbc_new_context()));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:161:24
[INFO] [stdout]     |
[INFO] [stdout] 161 |             smbc.ctx = try!(result_from_ptr_mut(smbc_init_context(ctx)));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:209:23
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let open_fn = try_ufn!(smbc_getFunctionOpen <- self);
[INFO] [stdout]     |                       -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:211:20
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:215:22
[INFO] [stdout]     |
[INFO] [stdout] 215 |             let fd = try!(result_from_ptr_mut(open_fn(self.ctx,
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:217:55
[INFO] [stdout]     |
[INFO] [stdout] 217 | ...                   try!(options.to_flags()),
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:275:23
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let stat_fn = try_ufn!(smbc_getFunctionStat <- self);
[INFO] [stdout]     |                       -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:276:20
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |         try!(to_result_with_le(unsafe { mkdir_fn(self.ctx, path.as_ptr(), 0o755) }));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:283:24
[INFO] [stdout]     |
[INFO] [stdout] 283 |         let mkdir_fn = try_ufn!(smbc_getFunctionMkdir <- self);
[INFO] [stdout]     |                        --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:284:20
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         try!(to_result_with_le(unsafe { rmdir_fn(self.ctx, path.as_ptr()) }));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:297:24
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let rmdir_fn = try_ufn!(smbc_getFunctionRmdir <- self);
[INFO] [stdout]     |                        --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:298:20
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:428:23
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let read_fn = try_ufn!(smbc_getFunctionRead <- self.smbc);
[INFO] [stdout]     |                       ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:429:26
[INFO] [stdout]     |
[INFO] [stdout] 429 |         let bytes_read = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:443:24
[INFO] [stdout]     |
[INFO] [stdout] 443 |         let write_fn = try_ufn!(smbc_getFunctionWrite <- self.smbc);
[INFO] [stdout]     |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:444:27
[INFO] [stdout]     |
[INFO] [stdout] 444 |         let bytes_wrote = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:463:24
[INFO] [stdout]     |
[INFO] [stdout] 463 |         let lseek_fn = try_ufn!(smbc_getFunctionLseek <- self.smbc);
[INFO] [stdout]     |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:469:19
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let res = try!(to_result_with_errno(unsafe { lseek_fn(self.smbc.ctx, self.fd, off, whence) }, libc::EINVAL));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 |     AuthCallbackPaniced(Box<error::Error>),
[INFO] [stdout]    |                             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     AuthCallbackPaniced(Box<dyn error::Error>),
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/smbc.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 83 |     auth_fn: &'a for<'b> Fn(&'b str, &'b str) -> (Cow<'a, str>, Cow<'a, str>, Cow<'a, str>),
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 83 |     auth_fn: &'a dyn for<'b> Fn(&'b str, &'b str) -> (Cow<'a, str>, Cow<'a, str>, Cow<'a, str>),
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:51:47
[INFO] [stdout]    |
[INFO] [stdout] 51 |             Error::NewContext(ref err) => err.description(),
[INFO] [stdout]    |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:52:48
[INFO] [stdout]    |
[INFO] [stdout] 52 |             Error::InitContext(ref err) => err.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:53:39
[INFO] [stdout]    |
[INFO] [stdout] 53 |             Error::Io(ref err) => err.description(),
[INFO] [stdout]    |                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:54:46
[INFO] [stdout]    |
[INFO] [stdout] 54 |             Error::NulInPath(ref err) => err.description(),
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stat_fn`
[INFO] [stdout]    --> src/smbc.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let stat_fn = try_ufn!(smbc_getFunctionStat <- self);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stat_fn`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/smbc.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let path = try!(cstring(path));
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:285:32
[INFO] [stdout]     |
[INFO] [stdout] 285 |         try!(to_result_with_le(unsafe { mkdir_fn(self.ctx, path.as_ptr(), 0o755) }));
[INFO] [stdout]     |                                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:299:32
[INFO] [stdout]     |
[INFO] [stdout] 299 |         try!(to_result_with_le(unsafe { rmdir_fn(self.ctx, path.as_ptr()) }));
[INFO] [stdout]     |                                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:429:49
[INFO] [stdout]     |
[INFO] [stdout] 429 |         let bytes_read = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                                                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:444:50
[INFO] [stdout]     |
[INFO] [stdout] 444 |         let bytes_wrote = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                                                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:469:45
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let res = try!(to_result_with_errno(unsafe { lseek_fn(self.smbc.ctx, self.fd, off, whence) }, libc::EINVAL));
[INFO] [stdout]     |                                             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `result_from_ptr` is never used
[INFO] [stdout]   --> src/util.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn result_from_ptr<T>(ptr: *const T) -> io::Result<*const T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMBC_FALSE` is never used
[INFO] [stdout]   --> src/smbc.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const SMBC_FALSE: smbc_bool = 0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling smbc v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/util.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | use libc::{self, c_char, c_int};
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/util.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 |     Ok(try!(CString::new(p.as_ref())))
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:151:23
[INFO] [stdout]     |
[INFO] [stdout] 151 |             let ctx = try!(result_from_ptr_mut(smbc_new_context()));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:161:24
[INFO] [stdout]     |
[INFO] [stdout] 161 |             smbc.ctx = try!(result_from_ptr_mut(smbc_init_context(ctx)));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:209:23
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let open_fn = try_ufn!(smbc_getFunctionOpen <- self);
[INFO] [stdout]     |                       -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:211:20
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:215:22
[INFO] [stdout]     |
[INFO] [stdout] 215 |             let fd = try!(result_from_ptr_mut(open_fn(self.ctx,
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:217:55
[INFO] [stdout]     |
[INFO] [stdout] 217 | ...                   try!(options.to_flags()),
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:275:23
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let stat_fn = try_ufn!(smbc_getFunctionStat <- self);
[INFO] [stdout]     |                       -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:276:20
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |         try!(to_result_with_le(unsafe { mkdir_fn(self.ctx, path.as_ptr(), 0o755) }));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:283:24
[INFO] [stdout]     |
[INFO] [stdout] 283 |         let mkdir_fn = try_ufn!(smbc_getFunctionMkdir <- self);
[INFO] [stdout]     |                        --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:284:20
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         try!(to_result_with_le(unsafe { rmdir_fn(self.ctx, path.as_ptr()) }));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:297:24
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let rmdir_fn = try_ufn!(smbc_getFunctionRmdir <- self);
[INFO] [stdout]     |                        --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:298:20
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let path = try!(cstring(path));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:428:23
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let read_fn = try_ufn!(smbc_getFunctionRead <- self.smbc);
[INFO] [stdout]     |                       ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:429:26
[INFO] [stdout]     |
[INFO] [stdout] 429 |         let bytes_read = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:443:24
[INFO] [stdout]     |
[INFO] [stdout] 443 |         let write_fn = try_ufn!(smbc_getFunctionWrite <- self.smbc);
[INFO] [stdout]     |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:444:27
[INFO] [stdout]     |
[INFO] [stdout] 444 |         let bytes_wrote = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/util.rs:30:31
[INFO] [stdout]     |
[INFO] [stdout]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/smbc.rs:463:24
[INFO] [stdout]     |
[INFO] [stdout] 463 |         let lseek_fn = try_ufn!(smbc_getFunctionLseek <- self.smbc);
[INFO] [stdout]     |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/smbc.rs:469:19
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let res = try!(to_result_with_errno(unsafe { lseek_fn(self.smbc.ctx, self.fd, off, whence) }, libc::EINVAL));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 |     AuthCallbackPaniced(Box<error::Error>),
[INFO] [stdout]    |                             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     AuthCallbackPaniced(Box<dyn error::Error>),
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/smbc.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 83 |     auth_fn: &'a for<'b> Fn(&'b str, &'b str) -> (Cow<'a, str>, Cow<'a, str>, Cow<'a, str>),
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 83 |     auth_fn: &'a dyn for<'b> Fn(&'b str, &'b str) -> (Cow<'a, str>, Cow<'a, str>, Cow<'a, str>),
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:51:47
[INFO] [stdout]    |
[INFO] [stdout] 51 |             Error::NewContext(ref err) => err.description(),
[INFO] [stdout]    |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:52:48
[INFO] [stdout]    |
[INFO] [stdout] 52 |             Error::InitContext(ref err) => err.description(),
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:53:39
[INFO] [stdout]    |
[INFO] [stdout] 53 |             Error::Io(ref err) => err.description(),
[INFO] [stdout]    |                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:54:46
[INFO] [stdout]    |
[INFO] [stdout] 54 |             Error::NulInPath(ref err) => err.description(),
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stat_fn`
[INFO] [stdout]    --> src/smbc.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let stat_fn = try_ufn!(smbc_getFunctionStat <- self);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stat_fn`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/smbc.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let path = try!(cstring(path));
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:285:32
[INFO] [stdout]     |
[INFO] [stdout] 285 |         try!(to_result_with_le(unsafe { mkdir_fn(self.ctx, path.as_ptr(), 0o755) }));
[INFO] [stdout]     |                                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:299:32
[INFO] [stdout]     |
[INFO] [stdout] 299 |         try!(to_result_with_le(unsafe { rmdir_fn(self.ctx, path.as_ptr()) }));
[INFO] [stdout]     |                                ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:429:49
[INFO] [stdout]     |
[INFO] [stdout] 429 |         let bytes_read = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                                                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:444:50
[INFO] [stdout]     |
[INFO] [stdout] 444 |         let bytes_wrote = try!(to_result_with_le(unsafe {
[INFO] [stdout]     |                                                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/smbc.rs:469:45
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let res = try!(to_result_with_errno(unsafe { lseek_fn(self.smbc.ctx, self.fd, off, whence) }, libc::EINVAL));
[INFO] [stdout]     |                                             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `result_from_ptr` is never used
[INFO] [stdout]   --> src/util.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn result_from_ptr<T>(ptr: *const T) -> io::Result<*const T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMBC_FALSE` is never used
[INFO] [stdout]   --> src/smbc.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const SMBC_FALSE: smbc_bool = 0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.4.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "99c973f517a217907b7fa5abd92ead054d50f4737768e453b359dfa31143787c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "99c973f517a217907b7fa5abd92ead054d50f4737768e453b359dfa31143787c", kill_on_drop: false }`
[INFO] [stdout] 99c973f517a217907b7fa5abd92ead054d50f4737768e453b359dfa31143787c
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 96930ec43c4d0b1233d489032dd84b35df37a34c99400a197244f344f73304cf
[INFO] running `Command { std: "docker" "start" "-a" "96930ec43c4d0b1233d489032dd84b35df37a34c99400a197244f344f73304cf", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: unused import: `self`
[INFO] [stderr]   --> src/util.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | use libc::{self, c_char, c_int};
[INFO] [stderr]    |            ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/util.rs:52:8
[INFO] [stderr]    |
[INFO] [stderr] 52 |     Ok(try!(CString::new(p.as_ref())))
[INFO] [stderr]    |        ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:151:23
[INFO] [stderr]     |
[INFO] [stderr] 151 |             let ctx = try!(result_from_ptr_mut(smbc_new_context()));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:161:24
[INFO] [stderr]     |
[INFO] [stderr] 161 |             smbc.ctx = try!(result_from_ptr_mut(smbc_init_context(ctx)));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/util.rs:30:31
[INFO] [stderr]     |
[INFO] [stderr]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stderr]     |                               ^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/smbc.rs:209:23
[INFO] [stderr]     |
[INFO] [stderr] 209 |         let open_fn = try_ufn!(smbc_getFunctionOpen <- self);
[INFO] [stderr]     |                       -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:211:20
[INFO] [stderr]     |
[INFO] [stderr] 211 |         let path = try!(cstring(path));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:215:22
[INFO] [stderr]     |
[INFO] [stderr] 215 |             let fd = try!(result_from_ptr_mut(open_fn(self.ctx,
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:217:55
[INFO] [stderr]     |
[INFO] [stderr] 217 | ...                   try!(options.to_flags()),
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/util.rs:30:31
[INFO] [stderr]     |
[INFO] [stderr]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stderr]     |                               ^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/smbc.rs:275:23
[INFO] [stderr]     |
[INFO] [stderr] 275 |         let stat_fn = try_ufn!(smbc_getFunctionStat <- self);
[INFO] [stderr]     |                       -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:276:20
[INFO] [stderr]     |
[INFO] [stderr] 276 |         let path = try!(cstring(path));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:285:9
[INFO] [stderr]     |
[INFO] [stderr] 285 |         try!(to_result_with_le(unsafe { mkdir_fn(self.ctx, path.as_ptr(), 0o755) }));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/util.rs:30:31
[INFO] [stderr]     |
[INFO] [stderr]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stderr]     |                               ^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/smbc.rs:283:24
[INFO] [stderr]     |
[INFO] [stderr] 283 |         let mkdir_fn = try_ufn!(smbc_getFunctionMkdir <- self);
[INFO] [stderr]     |                        --------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:284:20
[INFO] [stderr]     |
[INFO] [stderr] 284 |         let path = try!(cstring(path));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:299:9
[INFO] [stderr]     |
[INFO] [stderr] 299 |         try!(to_result_with_le(unsafe { rmdir_fn(self.ctx, path.as_ptr()) }));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/util.rs:30:31
[INFO] [stderr]     |
[INFO] [stderr]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stderr]     |                               ^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/smbc.rs:297:24
[INFO] [stderr]     |
[INFO] [stderr] 297 |         let rmdir_fn = try_ufn!(smbc_getFunctionRmdir <- self);
[INFO] [stderr]     |                        --------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:298:20
[INFO] [stderr]     |
[INFO] [stderr] 298 |         let path = try!(cstring(path));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/util.rs:30:31
[INFO] [stderr]     |
[INFO] [stderr]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stderr]     |                               ^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/smbc.rs:428:23
[INFO] [stderr]     |
[INFO] [stderr] 428 |         let read_fn = try_ufn!(smbc_getFunctionRead <- self.smbc);
[INFO] [stderr]     |                       ------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:429:26
[INFO] [stderr]     |
[INFO] [stderr] 429 |         let bytes_read = try!(to_result_with_le(unsafe {
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/util.rs:30:31
[INFO] [stderr]     |
[INFO] [stderr]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stderr]     |                               ^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/smbc.rs:443:24
[INFO] [stderr]     |
[INFO] [stderr] 443 |         let write_fn = try_ufn!(smbc_getFunctionWrite <- self.smbc);
[INFO] [stderr]     |                        -------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:444:27
[INFO] [stderr]     |
[INFO] [stderr] 444 |         let bytes_wrote = try!(to_result_with_le(unsafe {
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/util.rs:30:31
[INFO] [stderr]     |
[INFO] [stderr]  30 |     ($e:ident <- $s:expr) => (try!(unsafe {
[INFO] [stderr]     |                               ^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/smbc.rs:463:24
[INFO] [stderr]     |
[INFO] [stderr] 463 |         let lseek_fn = try_ufn!(smbc_getFunctionLseek <- self.smbc);
[INFO] [stderr]     |                        -------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `try_ufn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/smbc.rs:469:19
[INFO] [stderr]     |
[INFO] [stderr] 469 |         let res = try!(to_result_with_errno(unsafe { lseek_fn(self.smbc.ctx, self.fd, off, whence) }, libc::EINVAL));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/result.rs:31:29
[INFO] [stderr]    |
[INFO] [stderr] 31 |     AuthCallbackPaniced(Box<error::Error>),
[INFO] [stderr]    |                             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 31 |     AuthCallbackPaniced(Box<dyn error::Error>),
[INFO] [stderr]    |                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/smbc.rs:83:18
[INFO] [stderr]    |
[INFO] [stderr] 83 |     auth_fn: &'a for<'b> Fn(&'b str, &'b str) -> (Cow<'a, str>, Cow<'a, str>, Cow<'a, str>),
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 83 |     auth_fn: &'a dyn for<'b> Fn(&'b str, &'b str) -> (Cow<'a, str>, Cow<'a, str>, Cow<'a, str>),
[INFO] [stderr]    |                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/result.rs:59:32
[INFO] [stderr]    |
[INFO] [stderr] 59 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 59 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/result.rs:51:47
[INFO] [stderr]    |
[INFO] [stderr] 51 |             Error::NewContext(ref err) => err.description(),
[INFO] [stderr]    |                                               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/result.rs:52:48
[INFO] [stderr]    |
[INFO] [stderr] 52 |             Error::InitContext(ref err) => err.description(),
[INFO] [stderr]    |                                                ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/result.rs:53:39
[INFO] [stderr]    |
[INFO] [stderr] 53 |             Error::Io(ref err) => err.description(),
[INFO] [stderr]    |                                       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/result.rs:54:46
[INFO] [stderr]    |
[INFO] [stderr] 54 |             Error::NulInPath(ref err) => err.description(),
[INFO] [stderr]    |                                              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/smbc.rs:214:9
[INFO] [stderr]     |
[INFO] [stderr] 214 |         unsafe {
[INFO] [stderr]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stat_fn`
[INFO] [stderr]    --> src/smbc.rs:275:13
[INFO] [stderr]     |
[INFO] [stderr] 275 |         let stat_fn = try_ufn!(smbc_getFunctionStat <- self);
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stat_fn`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `path`
[INFO] [stderr]    --> src/smbc.rs:276:13
[INFO] [stderr]     |
[INFO] [stderr] 276 |         let path = try!(cstring(path));
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/smbc.rs:285:32
[INFO] [stderr]     |
[INFO] [stderr] 285 |         try!(to_result_with_le(unsafe { mkdir_fn(self.ctx, path.as_ptr(), 0o755) }));
[INFO] [stderr]     |                                ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/smbc.rs:299:32
[INFO] [stderr]     |
[INFO] [stderr] 299 |         try!(to_result_with_le(unsafe { rmdir_fn(self.ctx, path.as_ptr()) }));
[INFO] [stderr]     |                                ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/smbc.rs:429:49
[INFO] [stderr]     |
[INFO] [stderr] 429 |         let bytes_read = try!(to_result_with_le(unsafe {
[INFO] [stderr]     |                                                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/smbc.rs:444:50
[INFO] [stderr]     |
[INFO] [stderr] 444 |         let bytes_wrote = try!(to_result_with_le(unsafe {
[INFO] [stderr]     |                                                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/smbc.rs:469:45
[INFO] [stderr]     |
[INFO] [stderr] 469 |         let res = try!(to_result_with_errno(unsafe { lseek_fn(self.smbc.ctx, self.fd, off, whence) }, libc::EINVAL));
[INFO] [stderr]     |                                             ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: function `result_from_ptr` is never used
[INFO] [stderr]   --> src/util.rs:43:8
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub fn result_from_ptr<T>(ptr: *const T) -> io::Result<*const T> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SMBC_FALSE` is never used
[INFO] [stderr]   --> src/smbc.rs:38:7
[INFO] [stderr]    |
[INFO] [stderr] 38 | const SMBC_FALSE: smbc_bool = 0;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `smbc` (lib) generated 39 warnings (run `cargo fix --lib -p smbc` to apply 6 suggestions)
[INFO] [stderr] warning: `smbc` (lib test) generated 39 warnings (39 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.4.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/smbc-e8aa6ec01cdf47b0)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests smbc
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/lib.rs - (line 28) ... FAILED
[INFO] [stdout] test src/smbc.rs - smbc::SmbFile (line 98) ... ok
[INFO] [stdout] test src/smbc.rs - smbc::SmbClient (line 61) ... ok
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 28) stdout ----
[INFO] [stdout] error: missing parameters for function definition
[INFO] [stdout]   --> src/lib.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn load
[INFO] [stdout]    |        ^
[INFO] [stdout]    |
[INFO] [stdout] help: add a parameter list
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn load()
[INFO] [stdout]    |        ++
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `->`, `<`, `where`, or `{`, found keyword `fn`
[INFO] [stdout]   --> src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn load
[INFO] [stdout]    |        - expected one of `->`, `<`, `where`, or `{`
[INFO] [stdout] 30 | fn main() {}
[INFO] [stdout]    | ^^ unexpected token
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - (line 28)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "96930ec43c4d0b1233d489032dd84b35df37a34c99400a197244f344f73304cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "96930ec43c4d0b1233d489032dd84b35df37a34c99400a197244f344f73304cf", kill_on_drop: false }`
[INFO] [stdout] 96930ec43c4d0b1233d489032dd84b35df37a34c99400a197244f344f73304cf
